有人知道如何使用WCF实现MSMQ监听器 吗?
我有2个wcf服务构建,1个用于向MSMQ队列发送数据,另一个由MSMQ侦听器在MSMQ队列中插入时调用.现在我想知道我需要如何以及在哪里编写这个MSMQ监听器.
我在我的项目中使用WCF异步调用,我使用客户端异步方法.我有一个如下情况 -
//Code in Business Layer and this method is called from Web layer
private void GetGeneralNews()
{
client.BeginGetGeneralNewsFeed(GeneralNewsCallback, null);
}
//Call Back Method
private static void GeneralNewsCallback(IAsyncResult asyncResult)
{
string response = string.Empty;
try
{
response = client.EndGetGeneralNewsFeed(asyncResult);
}
catch(Exception ex)
{
throw ex; // Here is the problem. It does not throw the exception to the web layer instead it will suppress the error.
}
}
Run Code Online (Sandbox Code Playgroud)
因此,如上面的代码片段所示,它不会将业务层中的异常抛出到Web层,因为它将在业务层本身中被抑制.
我检查了他们建议去异步和等待方法的一些博客和网站,因为我有.NET 4.0框架,我看到" 生成基于任务的操作 "选项被禁用.因此,如果有任何选项使用"IAsyncResult"(客户端的Begin&End),请告诉我.如果有任何其他方法也欢迎.
请有人帮助我.
谢谢.
我的页面结构
我有 3 个文本框,其中启用了客户端验证。
我有提交按钮来发布表单数据。
问题
当我单击提交按钮时,它将转到我的 Post 方法,假设我没有在文本框中输入值,然后它会从服务器端(Http Post)抛出错误。
现在我将在文本框中输入值然后我将刷新浏览器,它进入 Post 方法而不是 Get !!!
有什么帮助吗??
我在表中设置了一个主键约束 - “tCustomerSessions”,名称为“PK_tCustomerSessions”。
以下是我的查询 -
SELECT *
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE TABLE_NAME = 'tCustomerSessions'
AND Constraint_Type = 'PRIMARY KEY'
Run Code Online (Sandbox Code Playgroud)
在这里,我如何获取已设置主键约束的列的名称?
database sql-server sql-server-2005 sql-server-2008-r2 sql-server-2012
我在静态部分类(Helper.cs)中添加了枚举.当我在其他文件中引用此枚举时,会添加自动使用块,如" 使用静态Common.Util.Helper "
所以,如果我从文件夹中做msbuild - " Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe "它不起作用并给出如下错误 -
错误CS1041:预期的标识符; 'static'是一个关键字
但是在VS 2015中,它建立得很好.我使用的是VS 2015和Framework 4.5版.那么我需要msbuild中的任何设置或任何解决方案吗?
提前致谢 !!
c# ×4
msmq ×2
wcf ×2
asp.net-mvc ×1
async-await ×1
asynchronous ×1
c#-5.0 ×1
database ×1
msbuild ×1
sql-server ×1
web-services ×1