Ich befolge ein Tutorial zum Einrichten eines WCF-Dienstes. Ich habe die Änderungen abgeschlossen, über die es gesprochen hat, bis zum ersten Mal, dass es heißt, den Dienst zu starten. Wenn ich in meinem Webbrowser zum Endpunkt navigiere, erhalte ich entweder den Fehler 404 oder 403.14. Anfangs zeigte der Dienst die Ordnerstruktur, aber ich entfernte das Attribut in der Datei web.config, die dies ermöglichte. Ich bin mir sicher, dass das Problem mit dieser Datei zusammenhängt, aber ich bin mir nicht sicher, was ich sonst ändern sollte. Link zur Führung: http://www.c-sharpcorner.com/UploadFile/dhananjaycoder/four-steps-to-create-first-wcf-service-for-beginners/Enthüllen der Metadaten des WCF-Dienstes
Datei Web.config:
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="aspnet:UseTaskFriendlySynchronizationContext" value="true"/>
</appSettings>
<system.web>
<compilation debug="true" targetFramework="4.5.2"/>
<httpRuntime targetFramework="4.5.2"/>
<httpModules>
<add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web"/>
</httpModules>
</system.web>
<system.serviceModel>
<services>
<service name="WcfCalculator.Calculator" behaviorConfiguration="Metadata">
<endpoint address="" contract="WcfCalculator.ICalculator" binding="basicHttpBinding"/>
<endpoint name="mex" address="mex" contract="IMetadataExchange" binding="mexHttpBinding"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="Metadata">
<serviceMetadata httpGetEnabled="true"/>
</behavior>
<behavior>
<!-- To avoid disclosing metadata information, set the values below to false before deployment -->
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
<protocolMapping>
<add binding="basicHttpsBinding" scheme="https"/>
</protocolMapping>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true"/>
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<remove name="ApplicationInsightsWebTracking"/>
<add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web"
preCondition="managedHandler"/>
</modules>
<!--
To browse web app root directory during debugging, set the value below to true.
Set to false before deployment to avoid disclosing web app folder information.
-->
<validation validateIntegratedModeConfiguration="false"/>
</system.webServer>
</configuration>
Service-Vertrag:
using System.ServiceModel;
namespace WcfCalculator
{
[ServiceContract]
public interface ICalculator
{
[OperationContract]
double AddNumbers(double number1, double number2);
[OperationContract]
double SubstractNumbers(double number1, double number2);
[OperationContract]
double MultiplyNumbers(double number1, double number2);
[OperationContract]
double DivisionNumbers(double number1, double number2);
}
}
Was meinst du mit "what account"? Sein Targeting .net Version 4.5.2. Ich nehme an, es versucht, den Ordner zu durchsuchen, und ich habe das Durchsuchen von Ordnern deaktiviert, aber was soll ich einschalten, um zu diesem Bildschirm zu gelangen? http://i.imgur.com/oIWulna.png Ich hostle gerade den Service durch Visual Studio. Es ist noch nicht auf IIS. – dragoncmd
OK, Sie verwenden Cassini, nicht IIS. Sie sagten, Sie hätten die Ordnerstruktur gesehen und diese dann deaktiviert - es würde 403 Fehler verursachen, wenn Sie Ihren Dienst nicht als Startdokument festlegen. Sie können auch mit der rechten Maustaste auf die SVC-Datei klicken und sie im Browser anzeigen. Und wieder, nicht sicher, warum Sie Protokoll-Mapping haben. Ich würde die Konfigurationsdatei aus dem Beispiel verwenden, das Sie verwenden, und dann alles hinzufügen, was Sie benötigen, beispielsweise App Insights und SSL. – Dennis
Fügen Sie die Informationen zum Rechtsklick auf die .svc-Datei zur Antwort hinzu, und ich akzeptiere sie. – dragoncmd