小编Sha*_*ika的帖子

在构造函数中尝试/ catch块

在构造函数中使用try/catch块是一种糟糕的编程习惯吗?或者只要我们的程序优雅地处理typeinitializer异常,它就没有任何区别.

在C#中,如果构造函数中有任何异常,框架总是抛出typeinitilizer异常.

谢谢,Shamika

c# constructor exception typeinitializer

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

在WebServices中捕获FaultException

我正在使用.net服务模型调用C#Web服务,偶尔此Web服务会抛出Microsoft.SharePoint.SoapServer.SoapServerException.我可以在我的客户端代码中捕获此特定异常作为FaultException但是我无法使用FaultException获取Web服务返回的友好错误消息.

以下是存在异常时Web服务的网络跟踪.

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Body>
        <soap:Fault>
            <faultcode>soap:Server</faultcode>
            <faultstring>Exception of type 'Microsoft.SharePoint.SoapServer.SoapServerException' was thrown.</faultstring>
            <detail>
                <errorstring xmlns="http://schemas.microsoft.com/sharepoint/soap/">Access to this Web site has been blocked.
    Please contact the administrator to resolve this problem.</errorstring>
                <errorcode xmlns="http://schemas.microsoft.com/sharepoint/soap/">0x81020071</errorcode>
            </detail>
        </soap:Fault>
    </soap:Body>
</soap:Envelope>
Run Code Online (Sandbox Code Playgroud)

我对在上面的响应中获取errorstring节点之间的内容非常感兴趣.但是,从FaultException类我无法检索上面的错误消息.这是否意味着.NET框架没有正确地反序列化上面的响应,或者我在这里使用了错误的excepetion类.

我可以从FaultException获得的唯一错误消息是"类型'的异常'Microsoft.SharePoint.SoapServer.SoapServerException'被抛出"没有别的.

请注意,我对Web服务没有任何控制权.

c# sharepoint wcf

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

使用.NET通过HTTP下载文件的最佳方法是什么?

在我的一个应用程序中,我使用WebClient类从Web服务器下载文件.有时,应用程序会根据Web服务器下载数百万个文档.似乎有很多文档时,WebClient不能很好地扩展性能.

此外,似乎WebClient即使在成功下载特定文档后也不会立即关闭它为WebServer打开的连接.

我想知道我还有其他选择.

更新:我还注意到,每次下载WebClient都会执行身份验证握手.由于我的应用程序只与单个Web服务器进行通信,因此我期待看到此握手一次.WebClient的后续调用是否应该重用身份验证会话?

更新:我的应用程序还调用了一些Web服务方法,对于这些Web服务调用,似乎重用了身份验证会话.此外,我正在使用WCF与Web服务进行通信.

.net c# webclient http

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

多线程环境中的SQL Server存储过程

我需要以线程安全的方式执行一些Sql Server存储的proc。目前,我正在使用软件锁(C#锁)来实现此目的,但想知道Sql Server本身提供了哪些功能来实现线程安全。似乎有一些内置于Sql服务器的表和行锁定功能。

从性能角度来看,什么是最佳方法?软件锁?还是Sql Server内置锁?

谢谢,Shamika

c# sql-server multithreading stored-procedures

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