Tag: wcf configuration

如何在不使用配置文件的情况下以编程方式添加maxItemsInObjectGraph?

我已经创建了类似的EndpointAddress EndpointAddress address = new EndpointAddress(“http://example.com/services/OrderService.svc”); 但我无法以编程方式将此行为添加到此端点。 行为如下:

netTCP绑定Soap安全协商失败

我正在写一个WCF服务需要模拟和会话。 我尝试在我的本地计算机上调用它时没关系,但是在远程计算机上它总是因为这样的错误而失败: 安全支持提供程序接口(SSPI)身份validation失败。 服务器可能未在具有标识“host / hostname”的帐户中运行。 如果服务器在服务帐户(例如,网络服务)中运行,请将该帐户的ServicePrincipalName指定为服务器的EndpointAddress中的标识。 如果服务器在用户帐户中运行,请将该帐户的UserPrincipalName指定为服务器的EndpointAddress中的标识。 如果我提供了upn,它会抛出一个身份失败的exception。 这是我的配置: 服务器配置(APP): 客户端配置: 任何帮助将不胜感激。

App.config外的WCF ChannelFactory配置?

我有一个使用插件系统的Windows服务。 我在插件基类中使用以下代码为每个DLL提供单独的配置(因此它将从plugin.dll.config读取): string dllPath = Assembly.GetCallingAssembly().Location; return ConfigurationManager.OpenExeConfiguration(dllPath); 这些插件需要调用WCF服务,因此我new ChannelFactory(“endPointName”)的问题是new ChannelFactory(“endPointName”)只在托管应用程序的App.config中查找端点配置。 有没有办法简单地告诉ChannelFactory查看另一个配置文件或以某种方式注入我的Configuration对象? 我能想到的唯一方法是从plugin.dll.config读入的值手动创建EndPoint和Binding对象,并将它们传递给ChannelFactory重载之一。 这看起来真的像重新创建轮子,并且它可能会因为大量使用行为和绑定配置而变得非常混乱。 也许通过传递配置部分可以轻松创建EndPoint和Binding对象?

servicePrincipalName应该有什么价值?

我正在尝试在我的服务上设置客户端模拟。 我需要为我的服务endPoint的servicePrincipalName设置一个值 我正在看这篇MSDN文章,但仍然无法弄明白 我的服务托管在服务器上的控制台应用程序中,我们称之为ServerName1。 Uri是: net.tcp://ServerName1:9990/TestService1/ 。 具体应该是我的servicePrincipalName是什么? 我试过了,没有任何喜悦:

Config中System.Object的WCF已知类型

我正在尝试在配置中指定一个已知类型,但我遇到的问题是它派生自Object。 我可以通过属性指定已知类型。 但在这种情况下,我需要从配置中使其工作。 这是一个例子。 以下工作正常: [ServiceContract] [ServiceKnownType(typeof(MyData))] public interface IContract { [OperationContract] void Send(object data); } [DataContract] public class MyData { [DataMember] public string Message { get; set; } } 但是,如果我删除ServiceKnownType属性并将以下内容放入配置中: 我得到一个ConfigurationErrorsException,消息“属性’type的值’无效。错误是:System.Object类型不能用作config中的声明类型。” 无论如何通过配置使这项工作?

WCF:使用消息合同流式传输

我正在尝试使用带有消息合同的WCF流,因为我需要在流本身旁边添加其他参数。 基本上我正在创建一个文件上传和下载服务,顶部还有一些额外的逻辑。 不幸的是,当我尝试从浏览器点击服务以检查一切正常时,我收到以下错误: ‘/’应用程序中的服务器错误。 合同’IFileTransferService’中的操作’UploadFile’使用具有SOAP头的MessageContract。 None MessageVersion不支持SOAP标头。 不幸的是谷歌搜索它并没有产生任何帮助我的重要结果。 你们能帮助我吗? 这里的服务细节(我已经删除了下载部分的空间原因)。 [ServiceContract(Namespace = “http://www.acme.org/2009/04”)] public interface IFileTransferService { [OperationContract(Action = “UploadFile”)] void UploadFile(FileUploadMessage request); } [MessageContract] public class FileUploadMessage { [MessageHeader(MustUnderstand = true)] public FileMetaData Metadata { get; set; } [MessageBodyMember(Order = 1)] public Stream FileByteStream { get; set; } } [DataContract(Namespace = “http://schemas.acme.org/2009/04”)] public class […]

WCF ConcurrencyMode Single和InstanceContextMode PerCall

我的wcf服务配置有问题。 我希望每次调用我的服务都会创建一个新的服务实例。 对于并发性,我希望一次调用在另一次启动之前完成。 因此,如果我有这样的服务: [ServiceBehavior(ConcurrencyMode=ConcurrencyMode.Single, InstanceContextMode=InstanceContextMode.PerCall)] public class MyService: IMyService { public bool MyServiceOp() { Debug.WriteLine(“thread “+ Thread.CurrentThread.ManagedThreadId.ToString()); Debug.WriteLine(“start operation “); Do_work() Debug.WriteLine(“end operation”); return true; } } 当我在循环中调用多个调用时,跟踪给出: thread 1 thread 2 start operation start operation end operation end operation 虽然我想这样: thread 1 start operation end operation thread 2 start operation end operation 这可能吗? […]