Edit: Не может быть сделано с Azure Storage Emulator ...
я действительно боролся с этим, как я нашел в документации, серьезно бедных, без соответствующих примеров, так что вот полный пример моих сценариев и файлов для кого-либо еще , основанный на ответе Мартина Брандла. Вам не нужно webRoleEntryPoint
только для веб-роли. Используется только для рабочих ролей.
Создайте новый пустой облачный сервис в своем проекте. Это создаст пустые файлы ServiceConfigiguration.Cloud.csfg
, ServiceConfigiguration.Cloud.csfg
и ServiceDefinition.csdef
для вас, а также папку с пустыми ролями. Вы также можете добавить роль web/worker, чтобы визуальная студия могла создать в них конфигурацию, а затем просто изменить их соответствующим образом.
Измените эти файлы (изменить physicalDirectory
к своему усмотрению):
ServiceDefinition.csdef
:
<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="SoundVast.Azure" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2015-04.2.6">
<WebRole name="WebRole1" vmsize="Small">
<Sites>
<Site name="Web" physicalDirectory="../SoundVast">
<Bindings>
<Binding name="Endpoint1" endpointName="Endpoint1" />
</Bindings>
</Site>
</Sites>
<ConfigurationSettings>
<Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" />
</ConfigurationSettings>
<Endpoints>
<InputEndpoint name="Endpoint1" protocol="http" port="80" />
</Endpoints>
</WebRole>
</ServiceDefinition>
<Site name="Web" physicalDirectory="../SoundVast">
является важным направлением, это physicalDirectory
относительно туда, где ваш файл .csdef
находится и я хотел сделать свой основной проект SoundVast
ролью, которая была расположена на одном уровне вверх.
ServiceConfiguration.Cloud.csfg
и ServiceConfiguration.Local.csfg
(оба могут быть одинаковым):
<?xml version="1.0" encoding="utf-8"?>
<ServiceConfiguration serviceName="SoundVast.Azure" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration" osFamily="4" osVersion="*" schemaVersion="2015-04.2.6">
<Role name="WebRole1">
<Instances count="1" />
<ConfigurationSettings>
<Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="UseDevelopmentStorage=true" />
</ConfigurationSettings>
</Role>
</ServiceConfiguration>
Важной частью является то, что имя роли соответствует вашей <Role name="WebRole1">
службы файлов определения имени веб-роль.
# path to cspack
$cspackPath = Join-Path $env:ProgramFiles 'Microsoft SDKs\Azure\.NET SDK\v2.8\bin\cspack.exe'
$PackagePath = 'C:\Users\Yamo\Documents\visual studio 2015\Projects\SoundVast\SoundVast.Azure\SoundVast.cspkg'
$serviceDefinitionFile = 'C:\Users\Yamo\Documents\visual studio 2015\Projects\SoundVast\SoundVast.Azure\ServiceDefinition.csdef'
$webRoleName = 'WebRole1'
$webRolePath = 'C:\Users\Yamo\Documents\visual studio 2015\Projects\SoundVast\SoundVast.Azure'
# define the cspack parameters
$cspackParameter = @(
$serviceDefinitionFile,
"/role:$webRoleName;$webRolePath;",
"/sites:$webRoleName;SoundVast;$webRolePath",
"/out:$PackagePath"
)
# execute cspack
& $cspackPath @cspackParameter
.cspkg
файл должен быть сгенерирован в месте вашего $PackagePath
.
Хотелось бы узнать, действительно ли это работает. Я дал ему полчаса и решил проверить здравомыслие здесь с ТАК. Учитывая, что даже для .NET 4.6 и гостевой ОС 4 вам необходимо вручную установить netfx 4.6, я думаю, что для этого потребуется какая-то будущая работа. –
Планируете ли вы поддержать это в будущем? – Ender2050
Я не могу использовать WebSite (сейчас WebApp) прямо сейчас, поскольку у меня есть некоторые устаревшие COM-объекты, которые мне нужно зарегистрировать для какого-то старого кода, и я могу сделать это только с помощью облачной службы ... но я хочу использовать последний asp.net а не перекодировать его снова позже ... как спросил Эндер, будет ли поддерживаться WebRoles? – Dan