小编Nic*_*sen的帖子

SignalR 2.1.0:尚未建立连接

我有一个带有简单HTML页面的ASP.NET Web应用程序和一些通过SignalR进行通信的JavaScript.这很好.现在我试图从另一个项目(在同一个解决方案中)调用Hub上的方法,并使用.NET Signalr Client Api:

        var connection = new HubConnection("http://localhost:32986/");
        var hub = connection.CreateHubProxy("MessageHub");
        connection.Start();
        hub.Invoke("SendMessage", "", "");
Run Code Online (Sandbox Code Playgroud)

最后一行导致InvalidOperationException: The connection has not been established.但我可以从我的JavaScript代码连接到集线器.

如何使用C#代码连接到Hub?

UPDATE

写完这篇文章后的那一刻,我试着添加.Wait()并且它有效!所以这将做:

        var connection = new HubConnection("http://localhost:32986/");
        var hub = connection.CreateHubProxy("MessageHub");
        connection.Start().Wait();
        hub.Invoke("SendMessage", "", "");
Run Code Online (Sandbox Code Playgroud)

c# signalr

12
推荐指数
1
解决办法
9366
查看次数

从WCF服务引发FaultException <T>会导致'此故障的创建者未指定Reason.'

FaultException<CustomFault>这样的时候:

throw new FaultException<CustomFault>(new CustomFault("Custom fault message"));
Run Code Online (Sandbox Code Playgroud)

我得到以下内容:"此错误的创建者未指定原因." 现在根据这篇MSDN文章,一个不需要使用FaultReason

我有以下服务合同:

[OperationContract]
[FaultContract(typeof(CustomFault))]
CustomType[] SomeMethod(int someParameter);

[DataContract]
public class CustomFault
{
    private string report;

    public CustomFault(string message)
    {
        this.report = message;
    }

    [DataMember]
    public string Message
    {
        get { return this.report; }
        set { this.report = value; }
    }
}
Run Code Online (Sandbox Code Playgroud)

有关MSDN文章的评论表明它必须使用另一个FaultReason,但在其他几个地方,我看到有人认为FaultReason除非必要,否则你不应该使用它.

所以我的问题如下; 是否真的必须使用FaultReason,如果不是 - 我如何防止在尝试抛出时引发的异常FaultException

编辑

通过从运行示例项目这篇文章中,我得到了excact相同的行为.也许这是由.NET中的更新引起的,文档/样本没有更新.

c# error-handling wcf

8
推荐指数
1
解决办法
9431
查看次数

是否可以将Expression <Func <T,bool >>转换为Expression <Func <MyType,bool >>?

我有一个包含一些泛型方法的存储库类.一个是

public IEnumerable<T> FindAll<T>(Expression<Func<T, bool>> predicate) where T : class
{
    return GetDbSet<T>().Where(predicate);
}
Run Code Online (Sandbox Code Playgroud)

对于单元测试,我有一个TestRepository使用内存中对象而不是数据库.该TestRepository覆盖的FindAll方法,我想控制返回什么.所以我希望能够做到这样的事情:

public override IEnumerable<T> FindAll<T>(Expression<Func<T, bool>> predicate)
{
    return MyEntities.Where(predicate).Cast<T>();
}
Run Code Online (Sandbox Code Playgroud)

MyEntities.Where()只接受一个Expression<Func<MyEntity, bool>>.

如何将通用表达式转换/转换为强类型表达式?

c# lambda unit-testing

7
推荐指数
1
解决办法
1596
查看次数

在Lync中检测来电

我正在尝试检测Lync客户端中的传入呼叫.这是通过在描述订阅的Lync客户端ConversationManager.ConversationAdded事件做这个职位

但是,通过使用此方法,如果在调用者调用之前与调用者的对话窗口已打开,则无法检测传入呼叫.例如,如果我正在和朋友聊天,因此有一个打开的对话窗口,而这位朋友决定给我打电话,则不会触发ConversationAdded事件.

当我与呼叫者进行了有效对话时,如何检测来电?

谢谢,尼克拉斯

c# lync

6
推荐指数
2
解决办法
5120
查看次数

Lync客户端状态无效

使用Lync 2010 API时,LyncClient可以进入该Invalid状态.例如,如果关闭Lync进程,则会发生这种情况.再次启动Lync时,调用将Lync.GetClient()返回状态中的Lync客户端引用Invalid.阅读MSDN文档不是很有用 - Invalid没有描述状态:http://msdn.microsoft.com/en-us/library/microsoft.lync.model.clientstate_di_3_uc_ocs14mreflyncclnt.aspx

我的问题是; 如何检索不在Invalid状态的Lync客户端引用?

谢谢!

c# lync lync-2010

5
推荐指数
1
解决办法
1421
查看次数

在哪里配置WCF服务(REST和SOAP)

我正在实现一个WCF Web服务,负责通过使用多个绑定通过REST和SOAP发布数据.该服务将托管在IIS上.

我以前写了一些WCF服务,并且通过使用web.config和在Global.asax文件中设置路由来了解一些配置,但是我对如何制作最"干净"的配置或最佳实践感到困惑配置WCF服务.

这是我到目前为止所得到的:

web.config可用于设置绑定,端点,安全性等 - 在IIS上托管服务时是否需要这样做,还是可以在IIS上完成配置?

通过使用Global.asax,我们可以配置路由(以及许多其他东西).但这是正确的地方吗?

void Application_Start(object sender, EventArgs e)
    {
        RouteTable.Routes.Add(new ServiceRoute("Service", new WebServiceHostFactory(), typeof(Service)));
    }
Run Code Online (Sandbox Code Playgroud)

我花了一些时间在谷歌搜索这个主题,似乎每个链接都有自己对如何完成任务的看法.

因此,我想了解如何配置/实现WCF服务以支持以下内容:

为了记录,我知道如何使用SOAP/REST发布数据 - 这不是问题.我只是想为服务做出最干净/最小化的配置.

任何反馈都非常感谢.

c# wcf web-services web-config global-asax

4
推荐指数
1
解决办法
7991
查看次数

如何从MonoDroid中的重写方法返回Java.Lang.Object

你如何做我的MonoDroid?

public class ItemListAdapter : BaseAdapter    
{
    IEnumerable<Item> items;

    public override Java.Lang.Object GetItem(int position)
            {
                items.ElementAt(position);
            }
}
Run Code Online (Sandbox Code Playgroud)

问题是我需要覆盖GetItem()因为我的子类BaseAdapter,但显然上面会导致编译器错误.

有任何想法吗?

c# java android xamarin.android

3
推荐指数
1
解决办法
1182
查看次数

如何在线程正在工作时停止服务(不使用Thread.Abort)

我有一个服务在循环中运行一些不同的任务,直到服务停止.但是,我调用Web服务和此调用的其中一个任务可能需要几分钟才能完成.我希望能够立即停止服务,"取消"Web服务调用而不调用,Thread.Abort因为这会导致一些奇怪的行为,即使线程正在做的唯一事情是调用此Web服务方法.

如何取消或中断同步方法调用(如果可能的话)?或者我应该尝试不同的方法?

我试图使用AutoResetEvent,然后调用Thread.Abort哪个在下面的代码示例中正常工作,但是当在实际服务中实现此解决方案时,我得到一些意外的行为,可能是因为我正在使用的外部库中发生了什么.

AutoResetEvent并且Thread.Abort:

class Program
{
    static void Main(string[] args)
    {
        MainProgram p = new MainProgram();
        p.Start();
        var key = Console.ReadKey();
        if (key.Key == ConsoleKey.Q)
            p.Stop();
    }
}

class MainProgram
{
    private Thread workerThread;
    private Thread webServiceCallerThread;
    private volatile bool doWork;

    public void Start()
    {
        workerThread = new Thread(() => DoWork());
        doWork = true;
        workerThread.Start();
    }

    public void Stop()
    {
        doWork = false;
        webServiceCallerThread.Abort();
    }

    private void DoWork()
    {
        try …
Run Code Online (Sandbox Code Playgroud)

c# multithreading

3
推荐指数
1
解决办法
3422
查看次数

如何判断.NET调用引发的异常?

如果有一个代码:

data.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

(数据是ObjectContext)

MSDN文档列出了OptimisticConcurrencyException为抛出.这很好但我知道UpdateException也可以抛出(也可能是其他人).我怎么知道方法可以抛出哪些异常?

我不想抓住,Exception因为我只想捕捉我知道我能以某种方式处理的异常.这通常是说 - 不仅仅是上面的例子.必须有一些方法可以知道"内置".NET方法抛出的异常.

.net c# exception-handling try-catch

1
推荐指数
1
解决办法
166
查看次数