Обработчик событий электронной почты SharePoint 2010 выдает ошибку «Не удалось загрузить файл или сборку ...», список перестает работать - PullRequest
0 голосов
/ 02 сентября 2011

После многих блогов у меня есть код ниже. Однако после регистрации обработчиком событий и перезапуска службы таймера SharePoint, когда я отправляю электронное письмо в список, оно больше не отображает электронное письмо, и я получаю сообщение об ошибке ниже.

Я пытался:

  • Изменение версии сборки каждый раз перед развертыванием.
  • Перезапуск IIS, службы таймера SharePoint.
  • Если бы мой ИТ-отдел предоставил права учетной записи «Пользователи» моей сборке в GAC (другой блог предложил).

Код

public class EventReceiver1 : SPEmailEventReceiver
{
    /// <summary>
    /// The list received an e-mail message.
    /// </summary>       
    public override void EmailReceived(SPList oList, SPEmailMessage oMessage, string strReceiverData)
    {
        SPListItem oListItem = oList.Items.Add();
        oListItem["FaxNumber"] = oMessage.Headers["Subject"];
        //oListItem["Body"] = oMessage.HtmlBody;
        oListItem["MessageBody"] = oMessage.Headers["Subject"];
        oListItem.Update();
    }
}

Error

Не удалось загрузить файл или сборку 'TestEventReceiverProject, версия = 1.0.0.0, культура = нейтральная, PublicKeyToken = defdab4ceab73dcb' или одна из ее зависимостей. Система не может найти указанный файл.

Также, когда я перезапускаю службу SP, я получаю сообщение об ошибке «Необработанное исключение (System.Security.Cryptography.CrytographicException») в OWSTIMER.EXE [6760] »

1 Ответ

0 голосов
/ 04 сентября 2011

открыть окно свойств проекта. выберите вкладку Build Измените его на «Любой процессор» Сохраните ваши изменения. Скомпилируйте ваш проект и разверните

Если сборки находятся в GAC и отладчик Visual Studio не может видеть символы отладки (иначе: * .pdb). Если у вас не возникли проблемы с настройкой хранилища символов, куда собираются все ваши PDB, вам нужно будет поместить символы отладки в то же место, что и сборка. Хитрость заключается в поиске папки, содержащей вашу DLL в GAC.

Папка c: \ windows \ assembly не является реальной папкой, это виртуальная папка. Чтобы попасть в папку REAL, выполните следующие действия:

Пуск »Выполнить % systemroot% \ assembly \ gac [ENTER] Это откроет папку GAC. Теперь покажитесь, пока не найдете папку, которая выглядит следующим образом (вам может понадобиться перейти на одну папку и погрузиться в папку MSIL): [имя файла сборки -.DLL расширение] [версия сборки в формате #. #. # . #] __ [токен открытого ключа сборки].

Когда вы найдете эту папку, откройте ее, и вы увидите свою сборку, и вы убедитесь, что ваша сборка была развернута правильно. Вы можете просто перетащить сборку

Выполните и IISreset, сбросьте задание таймера, и вы можете снова протестировать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...