Не удалось загрузить файл или сборку msshrtmi, система не может найти указанный файл

Я пытаюсь перевести сайт Windows Azure с облака на веб-сайт. Я получаю эту ошибку:

Не удалось загрузить файл или сборку msshrtmi, Version = 1.7.0.0, Culture = нейтральный, PublicKeyToken = 31bf3856ad364e35 или одну из их зависимостей. Система не может найти указанный файл.

[FileNotFoundException: не удалось загрузить файл или сборку msshrtmi, версия = 1.7.0.0, культура = нейтральная, PublicKeyToken = 31bf3856ad364e35 »или одну из его зависимостей. Системе не удается найти указанный файл.]
Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.InitializeEnvironment () +0 Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment..cctor () +546

[TypeInitializationException: инициализатор типа для 'Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment' вызвал исключение.]
Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.GetConfigurationSettingValue (String configurationSettingName) +0 (AzureInit.AzureHelation_GettingsApplication_Gettings) +GettingsApplication_Gettings 28 год

[HttpException (0x80004005): инициализатор типа для 'Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment' вызвал исключение.]
System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode (контекст HttpContext, приложение HttpWeb5. HttpApplication.RegisterEventSubscriptionsWithIIS (IntPtr appContext, контекст HttpContext, обработчики MethodInfo []) +118
System.Web.HttpApplication.InitSpecial (состояние HttpApplicationState, обработчики MethodInfo [], контекст приложения IntPtr, контекст Http2
Http2. .HttpApplicationFactory.GetSpecialApplicationInstance (IntPtr appContext, HttpContext context) +336
System.Web.Hosting.PipelineRuntime.InitializeApplication (IntPtr appContext) +296

[HttpException (0x80004005): инициализатор типа для 'Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment' вызвал исключение.] System.Web.HttpRuntime.FirstRequestInit (контекст HttpContext) +9873912
System.Web.HttpRunirstRequestInit (контекст HttpRunirstRequest.EnsureFensure) ) +101 System.Web.HttpRuntime.ProcessRequestNotificationPrivate (запись IIS7WorkerRequest, контекст HttpContext) +254

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

Microsoft.WindowsAzure.CloudDrive Microsoft.WindowsAzure.Diagnostics Microsoft.WindowsAzure.ServiceRuntime Microsoft.WindowsAzure.StorageClient

В моем классе WorkerRole.cs вот мой код:

/// <summary>
/// Reads settings from service configuration file. 
/// </summary>
/// <param name="key">Setting key.</param>    
string AzureHelper_GetApplicationSettings(string key)
{
    try
    {
        return RoleEnvironment.GetConfigurationSettingValue(key);
    }
    catch
    {
        // Setting key was not found
        return null;
    }
}

person Joseph Anderson    schedule 18.12.2012    source источник


Ответы (1)


Удалите эти ссылки (и весь код, который идет с ними):

  • Microsoft.WindowsAzure.CloudDrive
  • Microsoft.WindowsAzure.Diagnostics
  • Microsoft.WindowsAzure.ServiceRuntime

Большинство функций этих сборок предназначены только для использования в облачных службах (веб-роли / рабочие роли).

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

Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.GetConfigurationSettingValue(String configurationSettingName) +0 
AzureInit.AzureHelper_GetApplicationSettings(String key) +28

Попробуйте изменить код в AzureHelper_GetApplicationSettings, чтобы использовать пакет NuGet Microsoft.WindowsAzure.ConfigurationManager. Это позволяет автоматически переключаться между ServiceConfiguration.cscfg и Web.config (AppSettings). Если RoleEnvironment.IsAvailable (= Cloud Service), он будет читать из ServiceConfiguration.cscfg. В противном случае (= веб-сайт / виртуальные машины / локальная среда) он будет читать из AppSettings. Но если вы выполняете развертывание на веб-сайтах, вам нужно будет добавить настройки, которые раньше были в вашем ServiceConfiguration.cscfg, в appSettings в вашем web.config.

person Sandrino Di Mattia    schedule 18.12.2012