问题标签 [wcf-configuration]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - App.config 之外的 WCF ChannelFactory 配置?
我有一个使用插件系统的 Windows 服务。我在插件基类中使用以下代码为每个 DLL 提供单独的配置(因此它将从 读取plugin.dll.config
):
这些插件需要调用 WCF 服务,所以我遇到的问题是new ChannelFactory<>("endPointName")
只在托管应用程序的 App.config 中查找端点配置。
有没有办法简单地告诉 ChannelFactory 查看另一个配置文件或以某种方式注入我的Configuration
对象?
我能想到的解决此问题的唯一方法是从读取的值手动创建 EndPoint 和 Binding 对象,plugin.dll.config
并将它们传递给其中一个ChannelFactory<>
重载。不过,这看起来确实像是在重新创建轮子,并且对于大量使用行为和绑定配置的端点来说,它可能会变得非常混乱。 也许有一种方法可以通过将配置部分传递给 EndPoint 和 Binding 对象来轻松创建它?
wcf - 托管在 VS 开发服务器中的 WCF 服务有效,而在 IIS 中则没有那么多
我有一个在 VS 开发服务器中运行良好的 WCF 服务,但是如果我转到项目设置并将 Web 选项卡服务器更改为使用本地 IIS Web 服务器,我会得到一个 BadImageFormatException。我知道这通常是在 32 位应用程序引用 64 位 dll 时引起的。我所有的程序集都是为 AnyCPU 构建的。
我真的不知道什么信息在这里会有所帮助,所以请发表评论,我会根据需要编辑问题。
对于初学者,我会说我正在使用 Autofac WCF 集成(这同样适用于 VS 开发服务器而不是 IIS)。我还应该补充一点,我检查了 IIS 设置。为设置为 .NET 4 集成管道的 DefaultAppPool 配置。启用匿名身份验证,禁用 Windows。
这是我的配置文件的示例。
wcf - WCF - 关于配置文件中 system.serviceModel 下端点元素的问题
在实现 WCF 客户端端点时,我的配置文件具有以下端点条目:
此时该服务未托管在 IIS 中。本质上,我使用 Cassini 来调用应用程序。此配置工作正常。但是,如果我删除 /Myservice 元素并且我的配置如下所示:
我得到以下异常:
System.ServiceModel.ProtocolException:内容类型文本/xml;服务不支持 charset=utf-8。客户端和服务绑定可能不匹配
为什么第二个配置在第一个工作时会中断?url 的 /MyService 部分有什么特别之处?
谢谢!
wcf - WCF bindings/security configuration for Intranet that uses Mac and Windows?
What bindings and security configurations are best for an environment with Windows and Mac Computers?
wcf - netsh 不适用于 AddressAccessDeniedException:HTTP 无法注册 URL
当另一个开发人员尝试通过 vs 2010 运行该服务时,他们收到了错误:
Please try changing the HTTP port to 88 or running as Administrator.
System.ServiceModel.AddressAccessDeniedException: HTTP could not register URL http://+:88/ColorService/. Your process does not have access rights to this namespace (see http://go.microsoft.com/fwlink/?LinkId=70353 for details). ---> System.Net.HttpListenerException: Access is denied
在进行了一些搜索并转到 Microsoft 指定的链接后,我让他们运行以下命令:
netsh http 添加 urlacl url=http://+:88/ColorService 用户=BUILTIN\Administrators
错误仍然出现,所以我也让他们用他们的 Domain\User 运行命令
netsh http 添加 urlacl url=http://+:88/ColorService 用户=DOMAIN\User
上面的方法仍然不起作用,所以我在以下链接中找到了一个工具来尝试并授予对 NT Authority\Interactive 的访问权限,但这也不起作用。
我终于回到给每个端点一个基地址:
http:\\localhost:8732\Design_Time_Addresses\ColorService
在此之后它起作用了。
为什么它不能与其他基地址一起使用?
我在每个端点内也没有任何 dns 节点,这有关系吗?这是干什么用的?我将其添加回:
wcf - 配置野兽
任何人都可以指导我进行 WCF 配置,我收到错误(400) 错误请求和跟踪查看器告诉我:
“已超出传入消息 (65536) 的最大消息大小配额。要增加配额,请在适当的绑定元素上使用 MaxReceivedMessageSize 属性。”
我查看了客户端的 app.config 并相应地更改了属性,但问题仍然存在,然后我查看了服务器的 web.config,发现根本没有<service>...</service>
标签,所以我右键单击web.config
并选择Edit WCF configuration
了一个弹出窗口并单击了几下,我的 wcf 服务配置已准备就绪,但它开始抛出
“服务器没有提供有意义的回复;这可能是由于合同不匹配、会话过早关闭或内部服务器错误造成的”
跟踪查看器显示 3 个警告:
“无法打开 System.ServiceModel.ServiceHost”
“故障 System.ServiceModel.ServiceHost”
“服务主机故障”
这是我的服务器 web.configs:
版本 0(工作但有限制):
还有一个显示 3 个警告:
编辑
这是我的网络配置的第 3 版,在 TraceViewer 中仍然显示相同的三个警告
wcf - 在不使用配置文件和使用默认构造函数实例化代理客户端的情况下配置 WCF
老实说,我不确定这是否可能,
我想知道是否有一种方法可以删除配置文件的使用,而不必覆盖客户端代理的创建。让我举个例子:
在客户端应用程序中,我们有一个 WCF DAL 项目。这是他们的 WCF 服务器的包装器,供客户端应用程序使用。目前,客户端应用程序需要配置文件中给出的所有绑定和端点,并且通常(在我们的项目中)会执行以下操作来包装 WCF 服务:
这将创建对服务器的调用并返回一个对象。如果客户端应用程序没有绑定和端点,它就会崩溃。我们可以更改数据服务客户端的每次创建以创建绑定和端点,或者创建我们自己的通道工厂来为我们执行此操作,但这意味着更改当前的 WCF DAL 层代码。
我的目标是尝试创建一种将进程插入 WCF DAL 层的方法,该方法将处理绑定和端点,而无需更改使用代码,同时无需配置文件。
到目前为止,我的想法是尝试使用 TT 文件,以便它创建数据服务客户端的部分类并覆盖通道工厂部分。这失败了,因为数据服务客户端的构造函数调用直接进入抽象类 (System.ServiceModel.ClientBase<T>) 并尝试获取配置内容。我找不到阻止它通过这个部分类在配置中查找并且不更改 WCF DAL 服务层的方法。
.net - 为什么 IMetadataExchange 是不可见的?
我创建了使用 IIS 6 (Windows XP) 托管的 WCF 服务:
我已经使用 Visual Studio 2010 创建了虚拟目录 (MyVirtualFolder),当我将浏览器指向“http://localhost/MyVirtualFolder/MyService.svc”时,我收到错误页面,告诉我应该打开 metadataExchange 接口,并说明如何这样做,我将如何修改我的配置文件。我仔细检查了一下,我的配置等于 html 页面提出的配置。
为什么 IMetaDataExchange 接口不可用?
先感谢您!
wcf - 另一个项目中端点的 WCF 配置
我在一个解决方案中有两个项目。一个项目,我们称之为 MainProject,变成了一个可执行文件。另一个项目,我们称之为 ControlsProject,包含UserControl
's 并且在 MainProject 中被引用(和使用)。ControlsProject 也有一个 WCF 服务参考。
关于此配置,我有两个问题:
- 我可以将 WCF 配置从 ControlsProject 复制到 MainProject(我不相信我可以按照“如何在另一个项目中包含 Web 引用端点配置”)
- 在 ControlsProject 配置中,合同没有完全限定的命名空间,而是有一个名称,例如“
ServiceName.IServiceInterfaceName
”。合同名称应该是什么,因为 ControlsProject 输出将是位于 MainProject 的 bin 文件夹中的文件?
我试过只是复制配置,但收到异常:“ Could not find default endpoint element that references contract 'MyService.IMyService' in the ServiceModel client configuration section. This might be because no configuration file was found for your application, or because no endpoint element matching this contract could be found in the client element.
”当我复制配置时,我将接口的名称完全限定为ControlsProject.MyService.IMyService
.
感谢您提供的任何帮助!
更新 (美国东部标准时间 2011 年 7 月 14 日下午 5:28)
这是我的客户端 app.config 的片段:
这是我的网络服务 web.config 的片段:
wcf - WCF 测试客户端 - 有什么方法可以将服务/设置保存到文件中以便以后轻松重新加载?
WCF 测试客户端是一个非常强大的工具。我可以避免创建一个新的控制台应用程序来测试我的服务。但是,令人讨厌的是我似乎无法保存我添加到客户端的服务/配置。如果我关闭它并再次打开它,它会重新开始。
有什么方法可以保存 WCF 测试客户端的“实例”......有点像 FxCop 如何让您扫描二进制文件并将该设置保存到 FxCop 文件?