我正在使用这个网址进行测试: http://localhost:55331/wcfDateTest.DateTimeService.svc/ProcessDateTime
但出现此错误: 404 未找到
如果我删除该部分,则此网址有效: http://localhost:55331/DateTimeService.svc/ProcessDateTime
但是我应该能够定义服务,对吗?
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
</appSettings>
<system.web>
<compilation debug="true" targetFramework="4.8" />
<httpRuntime targetFramework="4.8"/>
</system.web>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<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="false"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="web">
<webHttp/>
</behavior>
</endpointBehaviors>
</behaviors>
<services>
<service name="wcfDateTest.DateTimeService">
<endpoint address="rest" behaviorConfiguration="web" binding="webHttpBinding"
contract="wcfDateTest.IDateTimeService" />
</service>
</services>
<protocolMapping>
<add binding="basicHttpsBinding" scheme="https" />
</protocolMapping>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
<!--
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.
-->
<directoryBrowse enabled="true"/>
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0"/>
<remove name="OPTIONSVerbHandler"/>
<remove name="TRACEVerbHandler"/>
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0"/>
</handlers>
</system.webServer>
</configuration>
根据您的配置文件,您正在使用WCF 服务器应用程序。它的配置文件要求您使用 WCF 测试客户端打开并查看它。
wcfDateTest 应该是您的项目名称。但实际上,该端点的地址仅基于项目中 svc 文件的名称。 例如,在这个项目中,您的 svc 文件的名称应该是 DateTimeService.svc
我会给你一个初始项目的例子:
文件名为 Service1.svc
有两种方法可以右键配置文件修改端点地址,但是我尝试了但没有成功。
我给你的建议是用空项目编写 WCF。
创建三个类文件,一个用于接口,一个用于服务,一个用于主机。
最后,使用WCF服务配置编辑器完成app.config文件。在这里你可以找到修改地址的端点。