问题标签 [servicemodelex]
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.
web-services - Juval Lowy 的 WCF ServiceModelEx 库在哪里?
WCF 是 Microsoft 对 .Net Remoting 和 Web 服务的替代品。了解您是否是 .NET 组件开发人员至关重要。
WCF 的最佳参考似乎是(通过口耳相传、博客和亚马逊)Juval Lowy 的“Programming WCF Services”,由 O'Reilly 出版。
这本书在网络上的几个地方都被宣传为“随 Juval Lowy 的 ServiceModelEx 库一起提供”,它应该是扩展和简化 WCF 开发的这个很棒的 WCF 框架。在这本书中,Lowy 对这个框架进行了很多讨论。
但是,我不知道在哪里下载该库。如果您查看他网站的下载页面,那里有很多东西,但没有 ServiceModelEx。
他是否打算让他的读者通过他书中的代码示例手动重新编码所有内容?
有这方面经验的人吗?
是的,这是一个小众问题,但我认为这是一个重要的话题,而且肯定与编程有关。
.net - 您什么时候会使用 In-Proc WCF 组件?
我正在研究 Juval Lowy 的优秀 Programming WCF Services,我刚刚使用他的 InProcFactory 类和他的 ServiceModelEx 库创建了一个非常简单的进程内组件。
你为什么要这样做而不是在你的项目中只使用常规类?使用他的方法需要引用他的库并创建一个接口。
我能想到几个优点:
- 如果您始终如一地这样做,您将大大减少耦合。
- 一旦您编写了进程内组件,它们就可以在进程外或远程使用而无需更改。
这样做有更多优势吗?
您是否使用进程内 WCF 组件编写代码?
所有类都应该是组件吗?
你能完全脱离整个脱钩吗?
将所有类组件化的缺点是否大于优点?反之亦然?
sql - 关于使用“Programming WCF Services”一书中的 ServiceModelEx 的“WCFLogbook”的问题
我正在尝试从 Juval Lowy 的网站(Programming WCF Services的作者和IDesign的创始人)编译/运行示例 WCF 应用程序。当然,示例应用程序利用 Juval 的ServiceModelEx库并将故障/错误记录到“WCFLogbook”数据库。不幸的是,当示例应用程序出现故障时,我收到以下新错误:
“无法打开登录请求的数据库“WCFLogbook”。登录失败。用户“Bill-PC\Bill”登录失败。”
我怀疑错误是由于找不到“WCFLogbook”数据库而发生的,我认为仍然需要创建该数据库。包含在库源目录下,有两个文件——WCFLogbookDataSet.xsd和WCFLogbook.sql;在库代码中的任何地方似乎都没有引用它们。这让我相信 sql 和 xsd 文件可以用来在 SQL 中以某种方式创建数据库。如果我在这里朝着正确的方向前进,以及这些文件是否可以用于创建数据库(如果可以,如何),有人可以告诉我吗?
sql - WCF 故障记录和 SQL Exception 4060 错误
几天来,我一直在尝试从 Juval Lowy 的网站(Programming WCF Services 的作者和 IDesign 的创始人)编译/运行示例 WCF 应用程序。示例应用程序利用 Juval 的 ServiceModelEx 库,该库将故障/错误记录到“WCFLogbook”SQL 数据库。不幸的是,当示例应用程序出现故障时,我收到以下错误:
SQL 异常 4060:“无法打开登录请求的数据库 \"WCFLogbook\"。登录失败。\r\n用户 'Bill-PC\Bill' 登录失败。”
我确认 SQL WCFLogbook 数据库已创建并已授予我 (Bill-PC\Bill) 访问数据库的所有适当权限。此外,防火墙中已打开端口 8006 和端口 1433。TCP/IP 已启用并已选中“允许远程连接到此服务器”。我在 App.Config 文件中使用以下端点:
不幸的是,SQL 是一个我以前不需要冒险进入的“世界”,我对自己缺乏成功感到非常沮丧。有人对如何使它工作有任何其他建议吗?我错过了什么吗?
appfabric - ServiceBus AppFabricLabs DLL
有两个具有多个命名空间的 DLL 我遇到了问题:
Microsoft.ServiceBus.Channels - V2.0.50727 Microsoft.ServiceBus - V2.0.50727
我正在尝试增强 Juval 的 Lowry 的 Service Bus Explorer 以在以下之间切换:appfabric.azure.com - production portal.appfabriclabs.com - beta
如果我只使用 Channels - 我会丢失 TransportClientEndpointBehavior 类,如果我添加两个引用我将无法构建,因为 ServiceBusEnvironment 类存在于同一个命名空间中的两个 DLL 中。
我有一种感觉,我在这里遗漏了一些明显的东西......
引用两个文件:错误 1 类型“Microsoft.ServiceBus.ServiceBusEnvironment”存在于“c:\Program Files\Windows Azure AppFabric SDK\V2.0\Assemblies\Microsoft.ServiceBus.Channels.dll”和“c:\ Program Files\Windows Azure AppFabric SDK\V1.0\Assemblies\NET4.0\Microsoft.ServiceBus.dll' C:\Users\rreukema\Downloads\Idesign_WCFDisk\AprilIDesignCD\Demos\ServiceModelEx\ServiceBus\Discovery\ServiceBusDiscoveryClient.cs 26 134服务模型
只有通道引用:错误 12 找不到类型或命名空间名称“TransportClientEndpointBehavior”(您是否缺少 using 指令或程序集引用?) C:\Users\rreukema\Downloads\Idesign_WCFDisk\AprilIDesignCD\Demos\ServiceBus\ Explorer\PopulateSolution\ServiceBusHelper - Buffer.cs 21 78 PopulateNamespace
c# - 使用 WCF 和 ServiceModelEx 服务总线的奇怪行为
我正在使用 ServiceModelEx 的服务总线部分。(并使用 AppFabric 自动启动 WCF 服务)。我有一些奇怪的行为......
基本上,当我第一次调用服务总线时,所有正确的事件都会沿着链触发(通过查看数据库并查看记录的值来验证)。
但是在随后的调用中,没有任何反应。就好像事件永远不会发生......
.svclogs 没有显示任何有用的信息,事实上,它们甚至没有注册后续事件。
但是,对于订阅到总线的每个服务,Windows 事件日志确实显示以下错误:
我知道服务属性值是正确的,显然是因为它第一次运行正确。
有任何想法吗???
编辑 1:要添加到这种奇怪的行为,如果我在 Visual Studio 中“重建”解决方案,第一次调用总线工作,所有事件链下触发,然后所有后续调用再次失败
wcf - InProcProxyFactory.CreateInstance 从 WCF 服务调用
我正在尝试使用 IDesign 中的 ServiceModelEx 库。当我尝试打电话时:
InProcFactory.CreateInstance();
从 WCF 服务中(基本上从 WCF 服务 A 调用 WCF 服务 B),我收到以下错误:
找不到动态程序集
失败的代码是:
程序集没有以 App_Web 或 App_Code 为前缀,因为这不是网站或 Web 应用程序(它是 WCF 服务)。但是,如果我从网站、Web 应用程序或 EXE 调用该代码,则该代码确实有效。这是设计的吗?
c# - 如何仅向特定订阅者 ServiceModelEx 发布?
好的,所以我正在改变我的服务向客户推送通知的方式。现在 ServiceModelEx 的工作方式是,如果任何客户端订阅了一个事件,它会向所有订阅的用户发送消息,无论该消息是否是给他们的。在客户端,我确定消息是否适合他们。正如您可以想象的那样,这会产生大量的网络流量,尤其是当您只需要发送到某些客户端时。
现在我正在使用TransientSubscriptions
.
我尝试调试代码,但我唯一能说的是每个订阅者都存储为某种类型的 Generic CallbackChannel
。
每个 TransientSubscriber 都是这样定义的。
当它添加一个 TransientSubscriber 时,它会执行此操作。
如果有更好的方法,那么我愿意接受建议。我只想向 1 个客户而不是所有客户发送通知。
这里还有一篇关于 ServiceModelEx的msdn文章。
c# - 如何确保异常类型安全?
我正在使用一些改编自 Lowy 的 ServiceModelEx 的代码将异常打包到FaultException
.NET 中,通过网络发送,然后在客户端将其解包为 .NET Exception
。我的服务器理论上可以抛出任何类型的异常,但我们以 aSqlException
为例。
Lowy使用反射来解包,所以代码需要检查异常的类型来判断是否可以构造一个有效的对象:
两个问题
使用 SqlExceptions,第一个 Debug.Assert 失败。为了让他们在客户端上解决,我设置了对 的引用
System.Data
,但没有运气。我假设这是因为System.Data
在该客户端没有任何实际调用的情况下,编译器会删除引用?在短期内,我可以做些什么来让我的客户解决这个.GetType
电话?在不丢失细节粒度(例如)并且不需要客户端的任何程序集引用的情况下“重新抛出”
LambdaException
作为基础的正确方法是什么?这甚至可能吗?ExceptionDetail
StackTrace
编辑:这是在服务器上包装ExceptionDetail
为 a的源。FaultException
同样,这主要来自 Lowy 的 ServiceModelEx:
.net - WCF 服务之间的通信
我正在将服务构建到现有应用程序中,其中构建每个服务的目的是仅由一个客户端使用,并且客户端和服务器设置有双工通信通道。
限制
- 我没有重新设计现有基础设施的选项
- 我无法使用可共享会话
要求:
- 我需要能够在客户端服务之间进行通信(例如,如果用户单击一个项目并想要共享该项目,客户端出于某种原因可能无法处理“共享”功能并需要通过它交给另一个客户处理 - 这必须通过服务完成)
- 客户端之间的通信必须由服务进行。
为了让这个最初工作,我直接在两个客户端之间设置了一个 IPC 通道(netNamedPipeBinding),但我被告知通过服务器发送所有内容。在大多数情况下,这种情况下的“服务器”与客户端在同一台机器上运行,所以我想出了这个非常粗略的概念验证尝试(见下面的代码块)。
问题:当为订阅服务调用方法时,当前服务(在其中调用方法)的操作上下文为空 - 这使服务无法回调客户端
我正在考虑使用 Juval Löwy 在他的 ServiceModelEx 框架中提供的发布/订阅框架,但是当所有客户端已经在他们自己和各自的服务之间建立了双工通信设置时,这似乎是不必要的......所以目的只是添加一个简单的发布/订阅层,概念上位于这些服务“下方”,可以与任何愿意订阅的服务对话。
欢迎提出建议和建设性批评!