Ich habe eine Azure-Worker-Rolle implementiert, die ein paar geplante Aufgaben als Teil eines Integrationssystems ausführt. Ich versuche, einen HTTP-Endpunkt verfügbar zu machen, der einige administrative Funktionen bereitstellen wird, so dass ich Aspekte der Worker-Rolle remote steuern kann.Nancy-Selbsthost in der Azure-Worker-Rolle
Ich habe die Arbeit Rolle und läuft das einzige Problem ist, dass ich nicht in der Lage, HTTP-Endpunkt aus dem Internet zugreifen kann.
Ich habe bestätigt, dass der Nancy-Server läuft, seit ich remote auf der VM bin ich in der Lage, eine Verbindung mit der lokalen IP-Adresse herzustellen.
Die Rolle Config ist wie folgt:
<ServiceDefinition name="Azure" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2015-04.2.6">
<WorkerRole name="Host.Azure" vmsize="Small">
<ConfigurationSettings>
<Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" />
</ConfigurationSettings>
<Startup>
<Task commandLine="mount.cmd" executionContext="limited" taskType="background">
</Task>
</Startup>
<Endpoints>
<InputEndpoint name="http" protocol="http" port="80" localPort="80" />
</Endpoints>
<LocalResources>
</LocalResources>
<Imports>
<Import moduleName="RemoteAccess" />
<Import moduleName="RemoteForwarder" />
</Imports>
</WorkerRole>
</ServiceDefinition>
ich ab und bat ihn url erschaffe wie folgt:
var endpointName = "http";
var instance = RoleEnvironment.CurrentRoleInstance;
var internalEndpoint = instance.InstanceEndpoints[endpointName];
var uri = new Uri($"{internalEndpoint.Protocol}://{internalEndpoint.IPEndpoint}");
return new NancyUri {Value = uri};
Gibt es etwas anderes, was ich brauche t o tun diese Arbeit zu bekommen?
Ihre Uri-Konstruktion sieht verdächtig aus, da Sie '.Protocol' greifen. Es gibt Eigenschaften unter '.IPEndpoint', die Sie wahrscheinlich verwenden möchten (ich kann mich im Moment nicht an Einzelheiten erinnern). –