verweist, konnte ich nicht finden. Ich weiß, dass dies zu Tode geprügelt wurde, aber ich kann nicht so funktionieren, wie es sollte. Ich habe einen WCF-Dienst mit mehreren Verträgen. Sie alle funktionieren gut, wenn sie direkt, z.B. http://merlin.com/CompanyServices/CompanyWcfService.svc/Get_Document_Dates_Received/223278 Ich habe diesen WCF-Dienst erfolgreich für InfoPath Forms und Nintex-Workflows verwendet. Jetzt erstelle ich eine einfache ASP.Net-Anwendung, wie in 10 getan wurde. Ich konnte eine Service-Referenz wie in dem Artikel beschrieben hinzufügen. Ich habe das Formular auf eine Schaltfläche, und hinzugefügt, um den folgenden Code in das Button1_Click
Ereignis:Das Standardendpunktelement, das auf Vertrag
protected void Button1_Click(object sender, EventArgs e)
{
ServiceReference1.CompanyWcfServiceClient x = new ServiceReference1.CompanyWcfServiceClient();
var result = x.Get_Document_Dates_Received("223278");
}
, wenn ich auf den Button klicken erhalte ich die Fehlermeldung:
"Could not find default endpoint element that references contract 'ServiceReference1.ICompanyWcfService' in the ServiceModel client configuration section. This might be because no configuration file was found for your application, or because no endpoint element matching this contract could be found in the client element."
Also habe ich versucht, den folgenden zu die web.config. (direkt aus der Datei web.config des CompanyWcfService kopiert
<system.serviceModel>
<services>
<service name="CompanyWcfServices.CompanyWcfService" behaviorConfiguration="ServiceBehavior">
<endpoint address="" binding="webHttpBinding" contract="CompanyWcfServices.ICompanyWcfService" behaviorConfiguration="webHttpEndpointBehavior" >
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange">
</endpoint>
</service>
</services>
<bindings>
<webHttpBinding>
<binding>
<security mode="None">
</security>
</binding>
</webHttpBinding>
</bindings>
<behaviors>
<endpointBehaviors>
<behavior name ="webHttpEndpointBehavior">
<webHttp helpEnabled ="true" faultExceptionEnabled="true" automaticFormatSelectionEnabled="true"/>
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="ServiceBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
<behavior name="">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true"/>
</system.serviceModel>
ich exakt das gleiche Fehlermeldung erhalten, muss es etwas anderes sein goin g auf.
Schließlich gab ich auf und den Dienst wie folgt aufgerufen:
HttpWebRequest request = WebRequest.Create(@"http://merlin/Companyservices/CompanyWcfService.svc/Get_Document_Dates_Received/223278") as HttpWebRequest;
request.Credentials = CredentialCache.DefaultCredentials;
HttpWebResponse response = null;
var result = "";
try
{
response = request.GetResponse() as HttpWebResponse;
if (response.StatusCode == HttpStatusCode.OK)
{
using (Stream stream = response.GetResponseStream())
{
StreamReader reader = new StreamReader(stream, Encoding.UTF8);
result = reader.ReadToEnd();
}
}
}
catch (Exception ex)
{
result = "";
}
ich Stunden Beiträge verbracht haben, und die meisten von ihnen zu lesen schlagen die Konfigurationsinformationen an die web.config-Datei zu kopieren. Dies erscheint mir problematisch (neben der Tatsache, dass es nicht zu funktionieren scheint). Was ist, wenn ich einen WCF-Service eines Drittanbieters in Anspruch nehmen muss? Muss ich die Konfigurationsinformationen von der dritten Partei anfordern? Und wenn ich einen WCF-Dienst entwerfe, der von Dritten genutzt werden soll, muss ich dann auch die Konfigurationsdatei bereitstellen?
Auch. Im Abschnitt system.ServiceModel in Ihrer App web.config sollten Sie den Abschnitt services nicht benötigen. Ich würde das löschen. Sie müssen nur Artikel definieren, auf die im Kundenbereich verwiesen wird. Wie die Einstellungen für behaviorConfiguration oder binding, wenn Sie angepasst haben. –
Matt, danke für die Antwort. Tut mir leid, aber ich bekomme immer noch den gleichen Fehler. – user1337493
Dieses Problem scheint dann eine Diskrepanz zwischen dem Dienst und der web.config in der Anwendung zu sein. Der Fehler weist darauf hin, dass ein Service mit dem Vertrag 'ServiceReference1.ICompanyWcfService' nicht gefunden werden konnte. Beachten Sie in Ihrer web.config in der Web-App den Vertrag "CompanyWcfServices.ICompanyWcfService". Haben Sie zufällig einen Service erstellt, einen Verweis in Ihre Web App hinzugefügt und dann den Service-Namespace geändert? –