Auf meinem lokalen IIS-Server wird ein WCF-Dienst ausgeführt. Ich habe es als Dienstreferenz zu einem C # -Website-Projekt hinzugefügt und es fügt gut hinzu und generiert die Proxy-Klassen automatisch.
Wenn ich jedoch versuche, einen der Serviceverträge aufzurufen, wird folgende Fehlermeldung angezeigt:
Beschreibung: Während der Ausführung der aktuellen Webanforderung ist eine nicht behandelte Ausnahme aufgetreten. Bitte überprüfen Sie die Stapelverfolgung, um weitere Informationen über den Fehler und dessen Ursprung im Code zu erhalten.
Ausnahmedetails:System.ServiceModel.ProtocolException: Der Inhaltstyp text / html; charset = utf-8 der Antwortnachricht stimmt nicht mit dem Inhaltstyp der Bindung überein (application / soap + xml; charset = utf-8). Wenn Sie einen benutzerdefinierten Encoder verwenden, stellen Sie sicher, dass die IsContentTypeSupported-Methode ordnungsgemäß implementiert ist. Die ersten 1024 Bytes der Antwort waren: 'Funktion bredir (d, u, r, v, c) {var w, h, wd, hd, bi; var b = falsch; var p = falsch; var s = [[ 300,250, falsch], [250,250, falsch], [240,400, falsch], [336,280, falsch], [180,150, falsch], [468,60, falsch], [234,60, falsch], [88,31, falsch], [120,90, falsch], [120,60, falsch], [120,240, falsch], [125,125, falsch], [728,90, falsch], [160,600, falsch], [120,600, falsch] , [300.600, falsch], [300.125, falsch], [530.300, falsch], [190.200, falsch], [470.250, falsch], [720.300, wahr], [500.350, wahr], [550.480, wahr]]; if (typeof (window.innerHeight) == 'number'
Ich habe auch eine Konsolenanwendung, die auch mit dem WCF-Dienst kommuniziert, und die Konsolenanwendung kann Methoden problemlos aufrufen, ohne diesen Fehler zu erhalten.
Unten finden Sie Auszüge aus meinen Konfigurationsdateien.
WCF-Dienst Web.Config:
<system.serviceModel>
<services>
<service name="ScraperService" behaviorConfiguration="ScraperServiceBehavior">
<endpoint address=""
binding="wsHttpBinding"
bindingConfiguration="WSHttpBinding_IScraperService"
contract="IScraperService" />
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="http://example.com" />
</baseAddresses>
</host>
</service>
</services>
<bindings>
<wsHttpBinding>
<binding name="WSHttpBinding_IScraperService"
bypassProxyOnLocal="false" transactionFlow="false"
hostNameComparisonMode="StrongWildcard"
maxBufferPoolSize="2000000" maxReceivedMessageSize="2000000"
messageEncoding="Text" textEncoding="utf-8"
useDefaultWebProxy="true" allowCookies="false">
<readerQuotas
maxDepth="2000000" maxStringContentLength="2000000"
maxArrayLength="2000000" maxBytesPerRead="2000000"
maxNameTableCharCount="2000000" />
<reliableSession
enabled="false" ordered="true" inactivityTimeout="00:10:00" />
<security mode="Message">
<message clientCredentialType="Windows"
negotiateServiceCredential="true"
algorithmSuite="Default"
establishSecurityContext="true" />
</security>
</binding>
</wsHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="ScraperServiceBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
Website Project Service Client Web.Config
:
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="WSHttpBinding_IScraperService"
closeTimeout="00:01:00" openTimeout="00:01:00"
receiveTimeout="00:10:00" sendTimeout="00:01:00"
bypassProxyOnLocal="false" transactionFlow="false"
hostNameComparisonMode="StrongWildcard"
maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8"
useDefaultWebProxy="true" allowCookies="false">
<readerQuotas
maxDepth="32" maxStringContentLength="8192"
maxArrayLength="16384" maxBytesPerRead="4096"
maxNameTableCharCount="16384" />
<reliableSession enabled="false"
ordered="true" inactivityTimeout="00:10:00" />
<security mode="Message">
<transport clientCredentialType="Windows"
proxyCredentialType="None" realm="" />
<message clientCredentialType="Windows"
negotiateServiceCredential="true"
algorithmSuite="Default" />
</security>
</binding>
</wsHttpBinding>
</bindings>
<client>
<endpoint name="WSHttpBinding_IScraperService"
address="http://example.com/ScraperService.svc"
binding="wsHttpBinding"
bindingConfiguration="WSHttpBinding_IScraperService"
contract="ScraperService.IScraperService" >
<identity>
<servicePrincipalName value="host/FreshNET-II" />
</identity>
</endpoint>
</client>
</system.serviceModel>
Dies ist mein erster Versuch, eine WCF zu erstellen, also ist alles sehr neu. Jede Hilfe wird sehr geschätzt.
http://yourserver/virtualdirectory/ScrapperService.svc
. Können Sie eine "Ansicht im Browser" für die * .svc-Datei im Projektmappen-Explorer von Visual Studio erstellen?