0

我在 Sharepoint 2007 中有一个网站。我使用控制适配器,特别是用于菜单和登录控制的适配器。这两个适配器驻留在一个签名的程序集中,它被部署到网站的 bin 文件夹中。浏览器

<browser refID="Default">
        <controlAdapters>
            <adapter controlType="System.Web.UI.WebControls.Menu"
             adapterType="NameofEnterprise.SecondName.Adapters.MenuAdapter" />
            <adapter controlType="System.Web.UI.WebControls.Login"
         adapterType="NameofEnterprise.SecondName.Adapters.LoginAdapter" />
        </controlAdapters>
    </browser>

有时我会遇到以下异常,只是有时,比如说一天一两次:

Unable to create type 'NameofEnterprise.SecondName.Adapters.MenuAdapter'.

需要记住的事情:这发生在我开发的机器上,我不知道是否有临时文件可以让框架变得疯狂。其次,我不知道框架是否正在另一个程序集中寻找适配器的类,因为我有一些程序集与这个具有相同的命名空间,也就是说:NameofEnterprise.SecondName.BusinessLayer,NameofEnterprise。 SecondName.DataLayer....

Lz你能告诉我可能是什么问题吗?我可以更具体地告诉框架程序集的名称(在浏览器中你只写类和命名空间的名称)吗?

解决方案

最后,我使用了您给我的 2 条建议。我认为第一件事就足够了,也就是说:

<system.web>
    <compilation>
      <assemblies>
        <add assembly="*<Your assembly name here>*"/>
    </assemblies>
    </compilation>
</system.web>

但是我在浏览器中包含了两个程序集和公共令牌:

<browser refID="Default">
    <controlAdapters>
            <adapter controlType="System.Web.UI.WebControls.Menu"
             adapterType="NameofEnterprise.SecondName.Adapters.MenuAdapter", YourAssemblyName, Version=1.0.0.0, Culture=neutral, PublicKeyToken=YourPublicKeyToken"/>
    </controlAdapters>
4

2 回答 2

2

您应该修改您的 web.config,将您的程序集添加到程序集列表中:

<system.web>
    <compilation>
      <assemblies>
        <add assembly="*<Your assembly name here>*"/>
    </assemblies>
    </compilation>
</system.web>

添加包含您的控件的程序集,错误应该会消失。供将来参考,临时 Internet 文件几乎与 Asp.net 错误无关。虽然如果它让你感觉更好,你可以清除它们。

于 2009-04-14T07:52:47.247 回答
1

将引用添加到程序集时,使用完整的限定名称也很有用:

<browser refID="Default">
    <controlAdapters>
            <adapter controlType="System.Web.UI.WebControls.Menu"
             adapterType="NameofEnterprise.SecondName.Adapters.MenuAdapter", YourAssemblyName, Version=1.0.0.0, Culture=neutral, PublicKeyToken=YourPublicKeyToken"/>
    </controlAdapters>

于 2009-04-14T08:45:34.080 回答