Was könnte der Grund sein für das WCF-Fehler?
Mein WCF-Dienst[mit basicHttpBinding] die gehostet wird unter IIS 6.Bin in der Lage, den Zugriff ?wsdl-Datei in der service-url im IE-browser .
Habe ich eine Präsentations-Schicht in meiner winforms-client und ich fügte hinzu, die Referenz dieser service mit ServiceReferences option in VS.Net das erzeugt dann einen proxy.
Wenn ich eine Methode aufrufen, die auf diesem Dienst, werde diese Ausnahme.Was könnte ich hier noch fehlt ?Danke.
"Wert darf nicht null sein.Parameter name uri." an
System.ServiceModel.Beschreibung.ClientViaBehavior..ctor(Uri uri)
System.ServiceModel.- Konfiguration.ClientViaElement.CreateBehavior()
bei
System.ServiceModel.Description.ConfigLoader.LoadBehaviors[T](ServiceModelExtensionCollectionElement1
1 Verhaltensweisen, Boolean
behaviorElement, KeyedByTypeCollection
commonBehaviors)in
System.ServiceModel.Beschreibung.ConfigLoader.LoadChannelBehaviors(Serviceendpoint-Objekt
serviceendpoint-Objekt, String configurationName)System.ServiceModel.ChannelFactory.ApplyConfiguration(String
configurationName) bei
System.ServiceModel.ChannelFactory.InitializeEndpoint(String
configurationName, EndpointAddress Adresse) an
System.ServiceModel.ChannelFactory1..ctor(String
1.CreateSimplexFactory() bei
endpointConfigurationName, EndpointAddress remoteAddress) at
System.ServiceModel.EndpointTrait
System.ServiceModel.EndpointTrait1.CreateChannelFactory() at
1.CreateChannelFactoryRef(EndpointTrait
System.ServiceModel.ClientBase1
1.InitializeChannelFactoryRef() an
endpointTrait) at
System.ServiceModel.ClientBase
System.ServiceModel.ClientBase`1..ctor() bei
TestingClient..ctor() in C:\Presentation\Service
Referenzen\ServiceReference1\Reference.cs:Zeile 268
Hier ist meine config xml für server und client:
*Server:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="ProviderBinding" closeTimeout="00:01:00" openTimeout="00:01:00"
receiveTimeout="00:10:00" sendTimeout="00:10:00" allowCookies="false"
bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="2147483647" maxBufferPoolSize="524288" maxReceivedMessageSize="2147483647"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="Transport">
<transport clientCredentialType="None" proxyCredentialType="None" realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<services>
<service name="PTSWeb.PriceTestingService" behaviorConfiguration="PTSWeb.Service1Behavior">
<!-- Service Endpoints -->
<endpoint address="" binding="basicHttpBinding" contract="PTSWeb.IPriceTesting">
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="PTSWeb.Service1Behavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
*Client:
<system.serviceModel>
<client>
<endpoint address="http://localhost/PTSWeb/PTSWebService.svc"
behaviorConfiguration="PTSWeb.Service1Behavior" binding="basicHttpBinding"
bindingConfiguration="IPriceTestingBinding" contract="IPriceTesting"
name="IPriceTestingPort" />
<endpoint address="https://qaserver/webservice"
binding="basicHttpBinding" bindingConfiguration="ProviderBinding"
contract="Provider" name="ProviderPort" />
</client>
<bindings>
<basicHttpBinding>
<binding name="IPriceTestingBinding" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:10:00"
allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="2147483647" maxBufferPoolSize="524288" maxReceivedMessageSize="2147483647"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None" />
</binding>
<binding name="ProviderBinding" closeTimeout="00:01:00" openTimeout="00:01:00"
receiveTimeout="00:10:00" sendTimeout="00:10:00" allowCookies="false"
bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="2147483647" maxBufferPoolSize="524288" maxReceivedMessageSize="2147483647"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="Transport">
<transport clientCredentialType="None" proxyCredentialType="None" realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<behaviors>
<endpointBehaviors>
<behavior name="PTSWeb.Service1Behavior">
<clientVia/>
</behavior>
</endpointBehaviors>
</behaviors>
</system.serviceModel>
- Bitte zeigen Sie beide ServiceModel-config (client/server)
- Sicher VdesmedT.Habe nun Hinzugefügt xml-details in meiner Frage.Danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
In der client-config-Verhalten, haben Sie eine ClientVia element ohne URI definiert. Entfernen Sie entweder das Verhalten oder definieren Sie die via Uri.
Sehr gut erklären, das Ziel und die Verwendung der clientvia Verhalten : http://blogs.msdn.com/b/anilkumargupta/archive/2009/05/16/wcf-intermediate-service-between-client-and-server.aspx