我想学习WCF所以我决定尝试创建一些使用它的应用程序。那么我想到的是我有2个数据库,我想创建一个SSIS自定义数据源扩展,调用Web服务并将数据(从一个数据库)传递到SSIS ADO.Net数据源(到第二个数据库)
现在我使用SQL Server创建了2个数据库,每个数据库都有一个表。然后我在Visual Studio中添加了一个Connection,然后指定了服务器实例。 (没有创建任何.mdf文件)。我在Web.Config文件中添加了这个connectionString
<connectionStrings>
<add name="dbconnection" connectionString="
Data Source = SARE-VAIO;
Integrated Security = true;
Initial Catalog = Database1"/>
</connectionStrings>
当我编写基本上用数据填充Database1的服务时,我想定义端点,但是当我点击“编辑WCF配置”时,它说“没有服务”被定义了?我在这里做错了什么?我想创建一个无错服务,以便能够将其用作SSIS包中的源。
PS。我的服务有一个basicHttpsBinding
更新:我正在使用VS 2012和.Net Framework 4.5
更新2: 我暂时跳过端点定义,继续测试和部署我的WCF。当我调用该服务时,它会显示以下错误
Failed to invoke the service. Possible causes: The service is offline or inaccessible;
the client-side configuration does not match the proxy; the existing proxy is invalid.
Refer to the stack trace for more detail. You can try to recover by starting a new proxy,
restoring to default configuration, or refreshing the service.
这是我的web.config文件
<?xml version="1.0"?>
<configuration>
<connectionStrings>
<add name="dbconnection" connectionString="Data Source = SARE-VAIO; Integrated Security = true; Initial Catalog = Database1"/>
</connectionStrings>
<appSettings>
<add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
</appSettings>
<system.web>
<compilation debug="false" targetFramework="4.5" />
<httpRuntime targetFramework="4.5"/>
</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>
</behaviors>
<protocolMapping>
<add binding="basicHttpsBinding" scheme="https" />
</protocolMapping>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
<directoryBrowse enabled="true"/>
</system.webServer>
</configuration>
答案 0 :(得分:0)
回答你的问题
(1)为什么WCF配置编辑器显示“没有定义服务”错误:您的web.config没有明确定义任何服务和端点(注意:当您在IIS中托管它时,您仍然会添加一些端点,因为默认端点功能。但配置编辑器工具仅显示明确定义的端点)。这就是配置编辑器工具显示此消息的原因。但您可以使用该工具添加服务和端点。
(2)部署服务后,查看服务是否已成功激活。您可以通过浏览元数据URL(您的配置已启用元数据)来执行此操作。确保您的服务WSDL帮助页面和WSDL显示正常。如果没有先解决这个问题。
(3)如果您在IIS中托管默认https端点后,请确保您的IIS具有使用SSL证书配置的https绑定。
希望这有帮助!
谢谢!