Could not load file or assembly 'msshrtmi' or one of its dependencies (Azure Table Storage Access)

У меня есть HTTP-модуль, который я использую для перенаправления трафика между веб-сайтом в моем центре обработки данных и веб-сайтом, работающим на платформе Azure. Этот HTTP-модуль извлекает свои правила перенаправления из Azure Table Storage.

Перенаправления отлично работают на моей локальной машине разработки, а также при запуске на Azure. Однако, когда я устанавливаю модуль на свои серверы центра обработки данных (IIS 7, WS 2008 R2 Standard 64bit, .NET 4.0, ASP.NET 4.0), я получаю следующую ошибку

Parser Error Message: Could not load file or assembly 'msshrtmi' or one of its dependencies. An attempt was made to load a program with an incorrect format.
Line 124:                <add assembly="System.Web.DynamicData, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
Line 125:                <add assembly="System.Web.ApplicationServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
Line 126:                <add assembly="*" />
Line 127:            </assemblies>
Line 128:            <buildProviders>

Source File: C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\web.config    Line: 126 

"msshrtmi.dll" действительно существует в моем каталоге deployment bin.

Если я удалю эту dll, сайт центра обработки данных работает нормально, но модуль HTTPModule не может загрузить свои данные конфигурации из Table Storage и вместо этого выдает следующую ошибку

---> System.TypeInitializationException: The type initializer for 'Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment' threw an exception. ---> System.IO.FileNotFoundException: Could not load file or assembly 'msshrtmi, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
   at Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.InitializeEnvironment()
   at Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment..cctor()
   --- End of inner exception stack trace ---
   at Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.get_IsAvailable()

Также я вручную включил "Microsoft.WindowsAzure.ServiceRuntime.dll" как часть развертывания, чтобы убедиться, что она доступна на серверах центра обработки данных.

49
задан William Edmondson 25 November 2011 в 08:10
поделиться