Tag: #wcf

WCF服务:如何查找服务器日志以了解错误?

我知道这可能是一个非常基本的问题,但我是WCF和服务创建的新手。 我正在使用Microsoft VS 2010 C#4运行本地托管的WCF服务。 我试图通过简单绑定通过URL运行服务,并通过URL运行PUT和GET方法。 我得到了: 。 请参阅服务器日志以获取更多详 我尝试发出服务请求时出错。 如何找到这些服务器日志?

如何在WCF中将接口标记为DataContract

我有两个数据类,只保存数据成员(没有函数)。 一个是CallTask ,另一个是SmsTask 。 这两个类有一些常见的属性,如ID , Tel 。 我将这些常见属性放在一个单独的接口类中,并在适当的时候在我的项目中使用此接口类。 现在我在我的项目中添加了一个WCFService,以便在客户端和服务器之间共享数据。 考虑以下类设计: public interface IGsmTask : IComparable { string TaskID { get; set; } string SessionID { get; set; } string Tel { get; set; } } class CallTask : IGsmTask { #region IGsmTask Members public string TaskID { get; set; } public string SessionID { […]

为什么我不能在WCF REST POST方法中使用两个参数?

我有合同: [OperationContract] [WebInvoke(Method = “GET”, ResponseFormat = WebMessageFormat.Xml, UriTemplate = “GetCategoriesGET/{userIdArg}”, BodyStyle = WebMessageBodyStyle.Bare)] List GetVideosGET(string userIdArg); [WebInvoke(Method = “POST”, UriTemplate = “evals”)] [OperationContract] void SubmitVideoPOST(Video videoArg, string userId); 我有实施方法: public List GetVideosGET(string userIdArg) { List catsToReturn = new List(); if (Int32.Parse(userIdArg) == 1) { catsToReturn = catsForUser1; } else if (Int32.Parse(userIdArg) == 2) { […]

如何解决entity framework提供程序exception

我已将我的WCF项目发布到服务器上,我还将MVC应用程序发布到同一个使用WCF服务的盒子上。 在我的MVC应用程序上尝试登录时,这会使用wcf服务,但我在浏览器上遇到此exception, 无法加载在具有不变名称“System.Data.SqlClient”的ADO.NET提供程序的应用程序配置文件中注册的entity framework提供程序类型“System.Data.Entity.SqlServer.SqlProviderServices,EntityFramework.SqlServer”。 确保使用了程序集限定名称,并且程序集可用于正在运行的应用程序。 这是一个entity frameworkexception,但我假设我的项目已经在开发环境中引用了EF,在部署服务项目之后,DLL也应该包含EF引用,但我不知道为什么我会收到此错误。 我可以看到这条消息因为我打开了includeExceptionDetailInFaults=”True”

System.Runtime.Serialization.InvalidDataContractException:没有属性的set方法

由于错误显示我的属性没有setter,但我不想要一个setter,它应该是readonly。

在方法/数据成员中添加对WCF的限制

我是WCF的新手,我尝试向数据成员添加限制。 例如,这种方法: [DataMember] public string StringValue { get { return stringValue; } set { stringValue = value; } } 我想设置最大和最小长度。 我知道如何将限制添加到XML代码中 但有没有办法直接从代码中添加限制?

WCF服务引用从WSDL生成void方法

这是我第一次尝试使用WCF,所以我猜我做错了。 我正在尝试访问由WSDL定义的SOAP服务http://confluence.atlassian.com/rpc/soap-axis/confluenceservice-v1?wsdl我正在使用VS2010,我在项目中添加了一个服务引用并将其指向那里的URL(或者更确切地说,我们的内部网安装),但是当我使用对象浏览器查看服务时,接口上的操作是没有参数的所有void方法。 似乎WCF没有正确读取类型信息。 它没有给出错误,但它提供了大量的警告,如下所示: 警告1自定义工具警告:操作中名为InvalidSessionException的故障无法导入getPermissions。 不支持的WSDL,故障消息部分必须引用一个元素。 此错误消息不引用元素。 如果您具有对WSDL文档的编辑权限,则可以通过使用“element”属性引用schema元素来解决问题。 Z:\ TestLibrary \ Service References \ Confluence \ Reference.svcmap 1 1 TestLibrary 警告2自定义工具警告:未处理命名空间“ http://schemas.xmlsoap.org/wsdl/soap/ ”中的可选WSDL扩展元素“body”。 XPath:// wsdl:definitions [@ targetNamespace =’ http ://confluence.atlassian.com/rpc/soap-axis/confluenceservice-v1′] / wsdl:binding [@ name =’confluenceservice-v1SoapBinding’] / wsdl: operation [@ name =’getPermissions’] / wsdl:input [@ name =’getPermissionsRequest’] Z:\ TestLibrary \ Service References \ Confluence \ Reference.svcmap […]

WCF测试客户端断开字符串值,然后再将两个部分连接在一起

我编写了一个简单的SOAP服务,它返回一个对象,其中包含一个string类型的数据成员。 当我通过书面测试客户端使用服务时,一切正常,但是当我通过Visual Studio WCF测试客户端测试服务时,由于某种原因,当字符串数据成员超过81个字符时,客户端会剪切然后连接字符串再次….如下: 而不是显示: “Lorem ipsum dolor sit amet,consectetur adipiscing elit.Duis purus leo volutpatctorem ipsum dolor” 测试客户端显示“Lorem ipsum dolor sit amet,consectetur adipiscing elit.Duis purus leo volutpatc”+“torem ipsum dolor” 这不是问题,但只是非常有趣,任何人都可以告诉我为什么WCF tetst客户端这样做?

ServiceHost仅支持类服务类型

我有一个名为WcfService2的服务(原件我知道),它有一个带有公共接口的IService.cs文件: namespace WcfService2 { [ServiceContract] public interface IService1 { [OperationContract] [WebGet(UriTemplate = “/{value}”)] string GetData(string value); } } 然后我有我的公共类Service1.svc.cs文件,它返回值的字符串,如下所示: namespace WcfService2 { public class Service1 : IService1 { public string GetData(string value) { return string.Format(“You entered: {0}”, value); } } } 我现在正尝试使用如下控制台应用程序来托管此服务: namespace Host { class Program { static void Main(string[] args) { WebHttpBinding binding […]

WCF端点的默认超时值

有谁知道WCF Web服务中服务端点超时的默认值?