我的 web.config 有什么问题吗?我不知道如何称呼它

问题描述 投票:0回答:1

我正在使用这个网址进行测试: 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>
c# wcf
1个回答
1
投票

根据您的配置文件,您正在使用WCF 服务器应用程序。它的配置文件要求您使用 WCF 测试客户端打开并查看它。

wcfDateTest 应该是您的项目名称。但实际上,该端点的地址仅基于项目中 svc 文件的名称。 例如,在这个项目中,您的 svc 文件的名称应该是 DateTimeService.svc

我会给你一个初始项目的例子:

文件名为 Service1.svc

在wcf测试客户端中打开后的配置文件如下所示:

有两种方法可以右键配置文件修改端点地址,但是我尝试了但没有成功。

我给你的建议是用空项目编写 WCF。

创建三个类文件,一个用于接口,一个用于服务,一个用于主机。

最后,使用WCF服务配置编辑器完成app.config文件。在这里你可以找到修改地址的端点。

© www.soinside.com 2019 - 2024. All rights reserved.