Сбой службы ASP.NET WebApi SelfHost при регистрации URL-адреса HTTP

Я пытаюсь разместить конечную точку ASP.NET WebApi в рабочей роли Azure, используя новый пакет NuGet Microsoft.AspNet.WebApi.SelfHost. Мой рабочий код Run ()выглядит примерно так:

// Endpoint is defined as in ServiceDefinition.csdef as 
//   HTTP, external port 8080, internal port 8080 (or 8081 - error both ways)
RoleInstanceEndpoint externalEndPoint =
    RoleEnvironment.CurrentRoleInstance.InstanceEndpoints["Endpoint"]; 
string baseAddress= String.Format("http://{0}", externalEndPoint.IPEndpoint);
var maxsize = 1024 * 1024;  
var config = new HttpSelfHostConfiguration(baseAddress) 
{ 
    MaxBufferSize = maxsize, MaxReceivedMessageSize = maxsize 
};
config.Routes.MapHttpRoute(
    name: "DefaultApi",
    routeTemplate: "api/{controller}/{id}",
    defaults: new { id = RouteParameter.Optional }
);

// Create and open the server
var server = new HttpSelfHostServer(config);
server.OpenAsync().Wait();

// keep the worker thread alive
while (true)
    Thread.Sleep(Timeout);

Это прекрасно работает в структуре разработки, но при развертывании в Azure я получаю AggregateException от вызова server.OpenAsync (), содержащего следующий стек исключений:

[0] One or more errors occurred.
[1] HTTP could not register URL http://+:8081/. Your process does not have access rights to this namespace (see http://go.microsoft.com/fwlink/?LinkId=70353 for details).
[2] Access is denied

Я просто запускаю ванильную рабочую роль, и это, кажется, "привет мир" хоста self -...

Конечная точка моего ServiceDefinition.csdef выглядит так:

<Endpoints>
  <InputEndpoint name="Endpoint" protocol="http" port="8080" localPort="8081" />
</Endpoints>

BaseAddress, который я получаю из RoleEnvironment InstanceEndpoint, выглядит законным-http://10.115.[X].[Y] :8081

Я вижу сбой независимо от того, использую ли я тот же порт/localPort (8080 )или когда я делаю сопоставление, как указано выше.

Понятно, что таким образом можно разместить обычную службу WCF в рабочей роли -. Есть ли какая-либо причина, по которой ASP.NET WebApi SelfHost не будет работать в этой конфигурации?

7
задан Omri Gazitt 28 June 2012 в 07:25
поделиться