相关疑难解决方法(0)

IOException:进程无法访问文件"文件路径",因为它正由另一个进程使用

我有一些代码,当它执行时,它抛出一个IOException,说

该进程无法访问文件'filename',因为它正由另一个进程使用

这是什么意思,我能做些什么呢?

.net c# language-agnostic ioexception

152
推荐指数
5
解决办法
42万
查看次数

SqlException捕获和处理

问:有没有更好的方法来处理SqlExceptions?

以下示例依赖于解释消息中的文本.

Eg1:如果表不存在,我有一个现有的try catch来处理.
忽略我可以检查表是否存在于第一位的事实.

try
{
    //code
}
catch(SqlException sqlEx)
{
        if (sqlEx.Message.StartsWith("Invalid object name"))
        {
            //code
        }
        else
            throw;
}
Run Code Online (Sandbox Code Playgroud)

Eg2:没有try catch显示重复的键异常

if (sqlEx.Message.StartsWith("Cannot insert duplicate key row in object"))
Run Code Online (Sandbox Code Playgroud)

解决方案:我的SqlExceptionHelper的开始

//-- to see list of error messages: select * from sys.messages where language_id = 1033 order by message_id
public static class SqlExceptionHelper
{
    //-- rule: Add error messages in numeric order and prefix the number above the method

    //-- 208: Invalid object name '%.*ls'. …
Run Code Online (Sandbox Code Playgroud)

c# exception sqlexception

60
推荐指数
3
解决办法
13万
查看次数

System.Net.WebException:无法解析远程名称:

我正在测试一个端点,我遇到了一些问题.

我只是HttpClient在一个循环中使用,每小时执行一次请求.

var httpClient = new HttpClient();
var message = httpClient.GetAsync(url).Result;
Console.WriteLine(message.StatusCode);
Run Code Online (Sandbox Code Playgroud)

有一段时间我得到这个例外:

System.Net.Http.HttpRequestException:发送请求时发生错误.---> System.Net.WebException:无法解析远程名称:'xxx'

经验是在异常之后,可以访问URL.在浏览器中,您只需刷新页面即可.

我仍然没有得到用户体验它的任何报告,所以我想知道它是否只是一个本地问题,但可以使用一些信息来帮助诊断.

有没有办法检查无法解析远程名称是由DNS问题还是由例外的Web服务器问题引起的?我可以获得更多信息,HttpCLient还是需要更高级的诊断工具?

.net c# system.net.webexception

30
推荐指数
2
解决办法
11万
查看次数

应重试的SQL Server错误列表?

是否有自动重试有意义的SQL Server存储过程错误的简明列表?显然,重试"登录失败"错误没有意义,但重试"超时"确实如此.我认为指定哪些错误重试可能比指定哪些错误不重试更容易.

那么,除了"超时"错误之外,还有哪些其他错误适合自动重试?

谢谢!

sql-server ado.net data-access-layer

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

设置一个 C# 方法,在第一次失败后尝试重新连接到不同端口上的 SQL Server

我正在尝试设置一种方法,该方法将尝试首先在默认端口(1433)上连接到 SQL Server,然后在失败时在其他端口(例如 7777)上连接。

我想避免重建连接字符串并在失败时尝试再次连接,因为此方法将按照配置的时间间隔执行,并且我希望消除尽可能多的开销。

我尝试了以下方法(由ConnectionStrings提供)

public void EstablishConnection()
{
    string ConnectionString = "Data Source=127.0.0.1; Failover Partner=127.0.0.1,7777; Initial Catalog=foo;Connection Timeout = 3; Persist Security Info =True;User ID=<id>;Password=<password>";

    try
    {
        SqlConnection Connection = new SqlConnection(ConnectionString);
        Connection.Open();
    }
    catch (SqlException)
    {
        // Connection failed 
    }
}
Run Code Online (Sandbox Code Playgroud)

但根据这篇文章我的测试,它并没有按照我的预期方式工作。

我可以通过执行以下操作轻松解决此问题:

public void EstablishConnection()
{
    string ConnectionString = "Data Source=127.0.0.1;Initial Catalog=foo;Connection Timeout = 3; Persist Security Info =True;User ID=<id>;Password=<password>";

    try
    {
        SqlConnection Connection = new SqlConnection(ConnectionString);
        Connection.Open();
    }
    catch (SqlException)
    { …
Run Code Online (Sandbox Code Playgroud)

.net c# sql sql-server connection-string

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