Ich entwickle einen von IIS gehosteten WCF-Dienst mit VSTS2008 + C# + .Net 3.5. Ich finde, wenn Referenz den Dienst von einem Client mithilfe von Add Service Reference ..., muss Client in der Lage sein, den Computername in IP-Adresse aufzulösen, weil WSDL einige Schemadatei nach Computername verweisen. Hier ist ein Beispiel für einen Teil der WSDL-Datei, um WSDL-Datei von der Client-Seite zu analysieren Proxy zu generieren, müssen wir in der Lage Maschinenname testmachine1 an nahe stehende IP-Adresse,So binden Sie den WCF-Dienst an die IP-Adresse
<xsd:import schemaLocation="http://testmachine1/service.svc?xsd=xsd1"
namespace="http://schemas.microsoft.com/2003/10/Serialization/"/>
Meine Frage ist, zu lösen, Aus irgendeinem Grund kann der Computername nicht immer aufgelöst werden (aus nichttechnischen Gründen), daher möchte ich an die IP-Adresse des IIS-Server-Servers binden. Ist es möglich? Wenn ja, zu schätzen, wenn jemand beraten könnte. Hier ist meine aktuelle WCF web.config Datei, möchte ich wissen, wie es zu ändern, damit es mit der IP-Adresse arbeiten,
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<services>
<service behaviorConfiguration="Foo.WCF.ServiceBehavior"
name="Foo.WCF.CustomerManagement">
<endpoint address="" binding="basicHttpBinding"
contract="Foo.WCF.ICustomerManagement">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="Foo.WCF.ServiceBehavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
Vielen Dank im Voraus, George
Hallo Marc, Entschuldigung, ich finde etwas anderes. Ich habe versucht, auf WSDL von IE zuzugreifen, indem ich IP-Adresse, http://123.123.123.123/service.svc?wsdl verwende, es verwendet Maschinenname, um auf andere Import-xsd-Datei zu verweisen. Sie können versuchen, mein Problem zu reproduzieren. Aus diesem Grund habe ich Kopfschmerzen, ohne in der Lage zu sein, den Computernamen in die IP-Adresse aufzulösen. Ich kann die xsd-Datei nicht importieren. Irgendwelche Kommentare oder Lösungen? – George2
OK, interessant - ich musste das nie selbst machen, aber ich bin überrascht. Nun, eine Möglichkeit besteht darin, die Metadaten selbst herunterzuladen, sie zu einer großen statischen WSDL zusammenzustellen und diese WSDL dann den Kunden Ihres Webdienstes zu präsentieren, anstatt dass der Dienst die WSDL automatisch erstellen muss. –
Danke Marc, ich weiß, es funktioniert. Meine Frage ist, ob von web.config, haben wir irgendeine Option, an eine andere IP-Adresse als den Computernamen zu binden? Sie können in web.config sehen, dass ich den Computernamen oder die IP-Adresse nicht zugewiesen habe. Ich bin mir nicht sicher, ob wir dieses Verhalten überschreiben können. Irgendwelche Kommentare? – George2