Исключение создает тип для адаптера на веб-сайте Sharepoint? - PullRequest
0 голосов
/ 14 апреля 2009

У меня есть сайт в 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'.

Что нужно иметь в виду: это происходит на машине, которую я разрабатываю, я не знаю, есть ли временные файлы, которые могут свести с ума фреймворк. Во-вторых, я не знаю, ищет ли каркас класс Adapter в другой сборке, поскольку у меня есть некоторые сборки, которые имеют те же пространства имен, что и эта, то есть: NameofEnterprise.SecondName.BusinessLayer, NameofEnterprise. SecondName.DataLayer ....

плз подскажите в чем может быть проблема? Можно ли более конкретно сообщить фреймворку имя сборки (в браузере вы пишете только имя класса и пространство имен)?

1012 * РЕШЕНИЕ *

Наконец я воспользовался двумя советами, которые вы мне дали. Я думаю, что с первым достаточно, то есть:

<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>

Ответы [ 2 ]

2 голосов
/ 14 апреля 2009

Вы должны изменить свой web.config, добавив свою сборку в список сборок:

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

Добавьте сборку, содержащую ваши элементы управления, и ошибка должна исчезнуть. Для дальнейшего использования временные интернет-файлы почти не имеют ничего общего с ошибками Asp.net. Хотя вы можете очистить их, если вам от этого станет легче.

1 голос
/ 14 апреля 2009

Также полезно использовать полное имя, когда вы добавляете ссылку на вашу сборку:

<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>

...