在构造函数中使用try/catch块是一种糟糕的编程习惯吗?或者只要我们的程序优雅地处理typeinitializer异常,它就没有任何区别.
在C#中,如果构造函数中有任何异常,框架总是抛出typeinitilizer异常.
谢谢,Shamika
我正在使用.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服务没有任何控制权.
在我的一个应用程序中,我使用WebClient类从Web服务器下载文件.有时,应用程序会根据Web服务器下载数百万个文档.似乎有很多文档时,WebClient不能很好地扩展性能.
此外,似乎WebClient即使在成功下载特定文档后也不会立即关闭它为WebServer打开的连接.
我想知道我还有其他选择.
更新:我还注意到,每次下载WebClient都会执行身份验证握手.由于我的应用程序只与单个Web服务器进行通信,因此我期待看到此握手一次.WebClient的后续调用是否应该重用身份验证会话?
更新:我的应用程序还调用了一些Web服务方法,对于这些Web服务调用,似乎重用了身份验证会话.此外,我正在使用WCF与Web服务进行通信.
我需要以线程安全的方式执行一些Sql Server存储的proc。目前,我正在使用软件锁(C#锁)来实现此目的,但想知道Sql Server本身提供了哪些功能来实现线程安全。似乎有一些内置于Sql服务器的表和行锁定功能。
从性能角度来看,什么是最佳方法?软件锁?还是Sql Server内置锁?
谢谢,Shamika
c# ×4
.net ×1
constructor ×1
exception ×1
http ×1
sharepoint ×1
sql-server ×1
wcf ×1
webclient ×1