Запуск Windows Azure из ранее существовавшего приложения MVC2 - PullRequest
2 голосов
/ 03 декабря 2010

У меня уже есть приложение .NET MVC2, которое из-за того, что мы тратим 80 ГБ пропускной способности в день , и я хочу разместить его в облаке, чтобы быть более масштабируемым и дешевым .

Я оглядывался по сторонам, и почти нет альтернативы Azure , если мы находимся в Европе, но у меня уже есть учетная запись на 700 часов в Azure.

  • Я установил последнюю версию SDK Azure на VS2010
  • Я создал облачное приложение
  • Я ничего не сказал, когда попросили добавить роль
  • Я вручную добавляю 2 роли, выбрав существующие проекты в решении, которое я импортировал до

alt text

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

Никогда не работал! , затем я удалил один и загрузил один "внешний интерфейс", и я получаю те же вещи, к которым я не привык, и я понятия не имею, что делать

alt text

И так уже почти 4 часа:

alt text

Могу ли я чем-нибудь помочь с этим? Мне не с кем обратиться, и вы, ребята, были моими лучшими друзьями в самые тяжелые времена программирования. ***

Роль является ролью по умолчанию

using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.WindowsAzure;
using Microsoft.WindowsAzure.Diagnostics;
using Microsoft.WindowsAzure.ServiceRuntime;

namespace BackendWebRole
{
    public class WebRole : RoleEntryPoint
    {
        public override bool OnStart()
        {
            DiagnosticMonitor.Start("DiagnosticsConnectionString");

            // For information on handling configuration changes
            // see the MSDN topic at http://go.microsoft.com/fwlink/?LinkId=166357.
            RoleEnvironment.Changing += RoleEnvironmentChanging;

            return base.OnStart();
        }

        private void RoleEnvironmentChanging(object sender, RoleEnvironmentChangingEventArgs e)
        {
            // If a configuration setting is changing
            if (e.Changes.Any(change => change is RoleEnvironmentConfigurationSettingChange))
            {
                // Set e.Cancel to true to restart this role instance
                e.Cancel = true;
            }
        }
    }
}

И ServiceConfiguration.cscfg

<?xml version="1.0"?>
<ServiceConfiguration serviceName="CloudService" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration">
  <Role name="Julekalender (Frontend)">
    <Instances count="2" />
    <ConfigurationSettings>
      <Setting name="DiagnosticsConnectionString" value="DefaultEndpointsProtocol=https;AccountName=julekal;AccountKey=xR4G1SIUTSHdvAE1IpRKPoxJRr1upJjBcdqRX2GWGkwlO6tbbu30Bikz/ApBzUKhRvk+XaozvE/NIAwDzKCg==" />
    </ConfigurationSettings>
  </Role>
  <Role name="Julekalender (Backend)">
    <Instances count="2" />
    <ConfigurationSettings>
      <Setting name="DiagnosticsConnectionString" value="DefaultEndpointsProtocol=https;AccountName=julekal;AccountKey=xR4G1SIUTSHdvAE1IpRKPoxJRr1upJjBcdqRX2GWGkwlO6tbbu30Bikz/ApBzUKhRvk+XaozvE/NIAwDzKCg==" />
    </ConfigurationSettings>
    <Certificates>
    </Certificates>
  </Role>
</ServiceConfiguration>

И ServiceDefinition.csdef

<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="CloudService" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">
  <WebRole name="Julekalender (Frontend)" vmsize="Medium">
    <InputEndpoints>
      <InputEndpoint name="HttpIn" protocol="http" port="80" />
    </InputEndpoints>
    <ConfigurationSettings>
      <Setting name="DiagnosticsConnectionString" />
    </ConfigurationSettings>
  </WebRole>
  <WebRole name="Julekalender (Backend)">
    <InputEndpoints>
      <InputEndpoint name="HttpIn" protocol="http" port="8081" />
    </InputEndpoints>
    <ConfigurationSettings>
      <Setting name="DiagnosticsConnectionString" />
    </ConfigurationSettings>
    <Certificates>
    </Certificates>
  </WebRole>
</ServiceDefinition>

Ответы [ 2 ]

2 голосов
/ 04 декабря 2010

Если вы не используете шаблон Windows Azure MVC, вам необходимо убедиться, что вы отметили соответствующие библиотеки DLL как «локальные копии» (поскольку они не существуют в облаке).Я полагаю, что это библиотеки DLL, с которыми вам нужно сделать следующее:

  • System.Web.Abstractions
  • System.Web.Mvc
  • System.Web.Routing

Просто зайдите в свойства для каждой из этих ссылок и установите «copy local» в «always».

0 голосов
/ 03 декабря 2010

Случайно ли вам не хватает файлов WebRole.cs и WebWorker.cs в ваших ролях?Если они были созданы Visual Studio, указывают ли они на действительную учетную запись, отличную от Dev-Storage?

Я не знаю новый параметр в v1.3 SDK, но в v1.2 SDK он был вызванDiagnosticsConnectionString в файле ServiceConfiguration.cscfg в вашем проекте CloudService

Если оба проверены, пожалуйста, опубликуйте свои файлы WebRole и WorkerRole?

...