WCF: relativeAddress,baseAddress und verbindlich
Ich bin neu in WCF und meine Erfahrung mit einem einfachen Datei-weniger-Anwendung Teil von denen (web.config) Sie unten sehen können:
<serviceHostingEnvironment multipleSiteBindingsEnabled="true">
<serviceActivations>
<add
factory="System.ServiceModel.Activation.ServiceHostFactory"
relativeAddress="./RelativeAddress.svc"
service="WCF_Transactions.MyService1"/>
</serviceActivations>
</serviceHostingEnvironment>
Nun kann ich access service an
http://localhost:18148/RelativeAddress.svc
Dann füge ich die nächsten Zeilen:
<services>
<service name="WCF_Transactions.MyService1" behaviorConfiguration="MyBehavior1">
<host>
<baseAddresses>
<add baseAddress="http://localhost:18148/" />
</baseAddresses>
</host>
<endpoint address="/RelativeAddressX.svc" binding="basicHttpBinding" contract="WCF_Transactions.IService1"></endpoint>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="MyBehavior1">
<serviceMetadata httpGetEnabled="true" />
</behavior>
</serviceBehaviors>
</behaviors>
So, ich erwarte, dass mein Dienst zugänglich sein könnte, über die nächsten Adresse:
http://localhost:18148/RelativeAddressX.svc
aber ich kann das nicht tun. Was habe ich missverstanden?
Was ist die Art von hosting Sie verwenden? Ist es IIS oder self-hosting?
Ich benutze visual studio development server
Ich benutze visual studio development server
InformationsquelleAutor NET | 2013-02-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
MSDN http://msdn.microsoft.com/en-us/library/ms733749.aspx:
*
*
Also nach deinem Beispiel verfügen Sie über die Basis-Adresse
und es wird in Kombination mit RelativeAddress.svc, wie der name der svc-Datei. Und dann wird es versuchen, kombinieren Sie diesen string mit /RelativeAddressX.svc als Teil der endpoint-Adresse. So haben Sie etwas, das wie
Ihrem Endpunkt muss nicht geben Sie den Pfad zu svc in IIS. Es sollte mit nur einer logischen Adresse, assosiated mit diesem Punkt.
So ändern Sie Ihr Endpunkt die folgenden:
Und es sollte zugänglich sein, indem Sie den Pfad
InformationsquelleAutor Alex
Müssen Sie nicht angeben in der config-Datei beim hosting in IIS oder Cassini - die Basis-URL der web-server. Das element wird verwendet, wenn die self-hosting. Cassini (VS build-in web-server) werden ignoriert.
Hier ist eine gute Seite über WCF-Adressierung:
http://msdn.microsoft.com/en-us/magazine/cc163412.aspx
Hier sind einige ähnliche Beiträge:
WCF Service-Endpunkte vs-Host-Base-Adresse
WCF, ändern die baseAdress von einem Endpunkt
InformationsquelleAutor Jocke