- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试制作我的第一个 WCF 服务。我遇到了问题——我已经编写了一个结构、一个类和一些方法。我的服务契约(Contract)如下所示:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
namespace WebshopReports
{
// NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IReports" in both code and config file together.
[ServiceContract]
public interface IReports
{
[OperationContract]
List<Category> getReportCategories(string dir);
[OperationContract]
List<CReport> getReportList(Category category);
}
}
当我在 visual studio 中使用测试客户端运行它时,我得到以下信息:
Failed to add a service. Service metadata may not be accessible. Make sure your service is running and exposing metadata.
我确定它与我的 web.config 文件有关。它在下面。有人可以帮助我,因为我不确定如何配置 web.config:
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="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>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
</configuration>
奇怪的是,如果我将 CReport 从类更改为结构,它将起作用。
最佳答案
根据我们的经验,导致此类故障的主要原因有两个:
1) 服务器端序列化。这可能是由于类不可序列化或尝试在不使用 KnownType 属性的情况下序列化抽象类。
2) 由于 WCF 混淆了具有相同通用签名的多个 Collection 或 Dictionary 类型类,因此在客户端进行序列化。
根据您的描述,第 1 项听起来像是您的问题。
解决此类 WCF 问题的最佳方法是将以下 block 添加到 web.config 文件的配置部分:
<system.diagnostics>
<sources>
<source name="System.ServiceModel"
switchValue="Information, ActivityTracing"
propagateActivity="true">
<listeners>
<add name="traceListener"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData="c:\log\WebTrace.svclog" />
</listeners>
</source>
</sources>
</system.diagnostics>
一旦您尝试使用界面但失败,双击 svclog 文件,这将打开 WCF 的日志查看器工具。发生的任何异常都将以红色突出显示,您可以深入研究它们以查看导致 WCF 服务失败的具体问题。
关于c# - wcf 服务不工作 - 未能添加服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8497540/
我很快就会明白,我不是 Git 甚至 Gitkraken 的高手。因此,我只有一个修补程序、一个主分支和一个功能分支。我在修补程序、提交、推送和 merge 到 master 中进行更改(然后我也推送
我刚开始使用 stub 请求来测试对 iOS 的外部 API 的异步调用。我目前被以下代码困住了,我无法弄清楚什么不起作用。 我想要实现的非常简单的事情是,如果我从网站收到 200 响应,我将 Vie
设置: 一个 JPA ReviewRepository延长 CrudRepository 我的测试使用切片测试注释 @DataJpaTest 我的测试@Autowired ReviewReposito
我尝试通过logstash将csv文件vrom filebeat摄取到hdfs中。 Filebeat 成功将其转移到 logstash,因为我使用 stdout{codec=>rubydebug} 并
我看到很多教程解释了如何在 Tensorflow 的 Bazel WORKSPACE 中构建项目(例如 this one)。但我似乎无法找到一种方法来构建我自己的项目并将 tensorflow 作为依
我正在运行 Ubuntu 10.04 并且最初安装了 ruby 1.9.1(来自源代码)。我刚刚决定试用 ruby 1.9.2 和 rails 3,现在似乎是使用 rvm 处理多个 ruby
我有一个应用程序从后端接收支持的语言环境列表作为以下响应: {locales: [{code: 'enUS'}, {code: 'deDE'}, {code: 'arAR'}]} 我想使用 date-
我是一名优秀的程序员,十分优秀!