GVKun编程网logo

打开连接时,'MSSQL'遇到带有HResult'x80131509'的'InvalidOperationException'类型的意外异常

3

本文将分享打开连接时,'MSSQL'遇到带有HResult'x80131509'的'InvalidOperationException'类型的意外异常的详细内容,此外,我们还将为大家带来关于$exce

本文将分享打开连接时,'MSSQL'遇到带有HResult'x80131509'的'InvalidOperationException'类型的意外异常的详细内容,此外,我们还将为大家带来关于$exception {在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke} System.InvalidOperationException、.NET 进程抛出 System.InvalidOperationException、.Net 连接 FTP 下载文件报错:System.InvalidOperationException: The requested FTP command is not supported whe...、.netcore System.InvalidOperationException: Response Content-Length mismatch的相关知识,希望对你有所帮助。

本文目录一览:

打开连接时,'MSSQL'遇到带有HResult'x80131509'的'InvalidOperationException'类型的意外异常

打开连接时,'MSSQL'遇到带有HResult'x80131509'的'InvalidOperationException'类型的意外异常

如何解决打开连接时,''MSSQL''遇到带有HResult''x80131509''的''InvalidOperationException''类型的意外异常

当我尝试将查询加载到表格日期集(来自devops docker映像)时,会出现以下错误:

raise DatasetValidationError(error_message + ''\\n'' + str(e),e)
azureml.data.dataset_error_handling.DatasetValidationError: Cannot load any data from the datastore using the sql query "<azureml.data.datapath.DataPath object at 0x>". Please make sure the datastore and query is correct.

Error Code: ScriptExecution.DatabaseConnection.Unexpected
Failed Step: 9ad57100-4870-49d2-a32f-1c9c15c244e0
Error Message: ScriptExecutionException was caused by DatabaseConnectionException.
  DatabaseConnectionException was caused by UnexpectedException.
    ''MSsql'' encountered unexpected exception of type ''InvalidOperationException'' with HResult ''x80131509'' while opening connection.
      Internal connection Fatal error.

我相信我已允许防火墙中的连接(我可能做得不太正确)。

从笔记本(在计算实例上)运行它时,我没有得到错误。

解决方法

在计算实例上运行的代码是否与docker映像完全相同?如果是这样,则很可能是防火墙导致了连接问题。一种检查方法是(谨慎)禁用防火墙,并查看连接问题是否消失。

如果您愿意共享防火墙/网络配置,这也将有助于解决此问题。

$exception {在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke} System.InvalidOperationException

$exception {在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke} System.InvalidOperationException

如何解决$exception {在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke} System.InvalidOperationException

我创建了一种方法来编辑 WindowsForm 控件属性,例如文本框的文本。 但是我在不同的类(不是 Form1 类)中创建了这个方法,这个方法将被按钮点击处理程序调用,如下所示: 但我得到 [异常 {Invoke 或 BeginInvoke 不能在控件上调用直到 ]

private void button1_Click(object sender,EventArgs e)
        {
            Update_UI Update_UI = new Update_UI();

            if (_client!=null )
            {
                _trigger = false;
                _StatusTxtBox.InvokeEx(stb => stb.Text += CRLF + " Server disconnecting....");
                _client.Close();
                _listener.Stop();
            }
            else
            {
                Update_UI.UpdateUI("Update 02");
                //UpdateUI("Update_01");
            }
                
        }

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;

namespace Server_app
{
   public class Update_UI
    {
        // To populate String:
        public void UpdateUI(string s)
        {
            
           Form1 f = new Form1();
            Func<int> fn = delegate ()
            {
              f._StatusTxtBox.AppendText(System.Environment.NewLine + s);
                return 0;
            };
            
                
                f._StatusTxtBox.Invoke(fn);

            
        }

    }
}

谢谢, 其他

解决方法

我在代码中这样做是为了将 Form1 作为 ref 参数传递给外部类 但是我怎样才能将另一个 windowsform 作为引用传递给这个类

 private void button1_Click(object sender,EventArgs e)
    {
        Form1 f = this as Form1;
        Update_UI_Frm1 Update_UI = new Update_UI_Frm1();

        if (_client!=null )
        {
            _trigger = false;
            _StatusTxtBox.InvokeEx(stb => stb.Text += CRLF + " Server is Disconnecting....");
            _client.Close();
            _listener.Stop();
        }
        else
        {
           
            Update_UI.UpdateUIFrm1(ref f,"Update 02");
            
        }
            
    }

public class Update_UI_Frm1
{
    // To populate String:
    public void UpdateUIFrm1(ref Form1 refform,string s)
    {
        Form1 Frm1 = refform;
        Func<int> fn = delegate ()
        {
          Frm1._StatusTxtBox.AppendText(System.Environment.NewLine + s);
            return 0;
        };
            Frm1._StatusTxtBox.Invoke(fn);
        
    }

}

}

.NET 进程抛出 System.InvalidOperationException

.NET 进程抛出 System.InvalidOperationException

如何解决.NET 进程抛出 System.InvalidOperationException?

我已经尝试了我在网上找到的所有解决方案,但都没有奏效。 我确保我已经转义了所有引号并双引号其中有空格的任何路径,我已经确保所有进程正常和正确启动。 但由于某种原因,此进程在内部失败并返回退出代码 100,并抛出此特定错误。

具体的工作:

  • 该函数/进程在 cmd 和 powershell 中运行良好。
  • Windows 事件日志没有说明任何关于错误的额外信息。和标题说的一样。

我尝试过的事情:

  • 所以最初我认为这与用户访问 C 驱动器有关。虽然由于 VS 是在 admin 中运行,我认为这没问题。但是我查看了此链接:https://forum.eset.com/topic/14598-cant-scan-c-drive/ 没有帮助。

  • 然后我发现了一堆相似甚至相同的问题;他们中的很多人导致该过程实际上没有正确启动的解决方案:https://social.msdn.microsoft.com/Forums/vstudio/en-US/e899c6c0-7fba-40ec-a824-1bb26715318f/processstart-invalidoperationexception?forum=csharpgeneral 但是,这并没有提供我的解决方案。

  • 与上述声明类似,我发现了一个旧答案,该答案暗示 processstartinfo 对象的某些属性设置不正确 https://forums.codeguru.com/showthread.php?517237-Process-started-in-dll-works-correctly-in-testing-but-not-in-final-version 但是在更改 processstartinfo 的方式时,这对我也没有任何作用设置的属性。

    • 设置 processstartinfo.WorkingDirectory 和 processstartinfo.FileName,反之亦然。
  • 我还假设 ecls.exe 命令行可执行文件实际上无法像带有属性标签的 cmd 行 exe 一样运行(因为原始命令只是称为“ecls”而不是“ecls.exe”,所以测试了设置 processstartinfo 以启动空白 CMD 控制台然后运行原始扫描 cmd 的方法。但是这最终抛出了相同的错误,所以我知道 ecls.exe 可以以 cmd 行方式运行;它只是中断别的。

  • 我也终于找到了至少给了我一些提示的东西:https://www.experts-exchange.com/questions/29134987/ASP-NET-gets-InvalidOperationException-exception-on-System-Diagnostic-Process-object.html 解决方案是在付费墙后面,但我注意到在这个问题中,他们实际上达到了某种输出,而我的问题甚至从未达到他们收到的输出。所以我知道它在 exe 运行时失败,而不是在 exe 中失败。 使用 StandardOutput 错误日志记录后,我将确切的问题缩小到抛出的这个错误:

    “无法打开 C:\Users\...\Logs\scanner.log: ????????????\r\n”

我不知道自己做错了什么,为此浪费了一天。 请有人给出比windows更好的解释...

// USING ESET
processstartinfo psi = new processstartinfo();
//Set pathway
if (System.IO.File.Exists($@"{ConfigurationManager.AppSettings["ESETPath"]}\ecls.exe"))
    psi.FileName = $@"""{ConfigurationManager.AppSettings["ESETPath"]}\ecls.exe""";
else
    psi.FileName = $@"""{ConfigurationManager.AppSettings["ESETAlternativePath"]}\ecls.exe""";
//Set arguments
psi.Arguments = $"--log-file={ConfigurationManager.AppSettings["ESETLogFilePath"]} --no-log-console --log-all {FilePath}";
psi.CreateNowindow = true;
psi.UseShellExecute = false;
psi.RedirectStandardOutput = true;
psi.WindowStyle = ProcessWindowStyle.Hidden;

//Create process with Process Info
Process proc = Process.Start(psi);
proc.WaitForExit(AllowedTimePeriod);

if (proc.HasExited == false)
{
    proc.Kill();
    throw new Exception("Error occured. Anti-Virus Scan Could not complete the operation. Scanning time period too long.");
}

//Log
string stdout = proc.StandardOutput.ReadToEnd();
string stderr = proc.StandardError.ReadToEnd();

switch (proc.ExitCode)
{
    case 0: VirusFound = false; return true;
    case 1:
        VirusFound = true;
        if (System.IO.File.Exists(FilePath))
        {
            System.IO.File.Delete(FilePath);
        }
        return true;
    default:
        throw new Exception("Error occured. Anti-Virus Scan Could not complete the operation. Returned Error Code " + proc.ExitCode.ToString());
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

.Net 连接 FTP 下载文件报错:System.InvalidOperationException: The requested FTP command is not supported whe...

.Net 连接 FTP 下载文件报错:System.InvalidOperationException: The requested FTP command is not supported whe...

系统环境:
Windows + .Net Framework 4.0
 
问题描述:
C# 连接 FTP 下载文件时,在部分电脑上有异常报错,在一部分电脑上是正常的;异常报错的信息:System.InvalidOperationException: The requested FTP command is not supported when using HTTP proxy
 
分析过程:
在网上搜索到的解决方案,基本都是将代理置为 null:request.Proxy = null; 并没有解释其原因。
 
调试发现,如果不去主动设置 Proxy,创建 request 对象后(request = (FtpWebRequest) WebRequest.Create (uri)),其默认的 Proxy 就是 null,不解。。。
 
如下是查找相关资料,得到的解释:

.NET Framework 上

Proxy 属性标识 IWebProxy 与 FTP 服务器进行通信的实例。 代理的设置是由系统使用的配置文件和 Internet Explorer 本地网络设置。 若要指定应使用任何代理,请设置 Proxy 返回的代理实例到 GlobalProxySelection.GetEmptyWebProxy 方法。 

必须设置 Proxy 之前将数据写入到请求的流或获取响应。 更改 Proxy 后调用 GetRequestStream, BeginGetRequestStream, GetResponse,或 BeginGetResponse 方法使 InvalidOperationException 异常。

FtpWebRequest 类支持 HTTP 和 ISA 防火墙客户端代理。

如果指定的代理是 HTTP 代理,则仅 DownloadFile, ListDirectory,和 ListDirectoryDetails 支持命令。

 

上述说明,基本已经解释了异常的原因。但是既然代码中并未指定代理,但是实际缺使用了 HTTP 代理,结合有的电脑没问题有的电脑有问题现象,猜测应该是电脑设置或网络设置问题。如下是 “自动检测代理” 的说明,基本可以解释:

自动代理检测是一个进程,系统使用该进程来标识 Web 代理服务器,并用于代表客户端发送请求。 此功能也称为 Web 代理自动发现 (WPAD)。 启用自动代理检测后,系统会尝试查找代理配置脚本,该脚本负责返回一组可用于请求的代理。 如果找到了代理配置脚本,则会在针对使用 WebProxy 实例的请求获取代理信息、请求流或响应时,在本地计算机上下载、编译并运行该脚本。

自动代理检测由 WebProxy 类执行,且可采用请求级设置、配置文件中的设置和通过 Internet Explorer“局域网 (LAN)” 对话框指定的设置。

启用自动代理检测后,WebProxy 类会尝试按如下方式找到代理配置脚本:

  1. WinINet InternetQueryOption 函数用于查找 Internet Explorer 最近检测到的代理配置脚本。

  2. 如果找不到该脚本,WebProxy 类将使用动态主机配置协议 (DHCP) 查找该脚本。 DHCP 服务器可以采用脚本的位置(主机名)或脚本的完整 URL 进行响应。

  3. 如果 DHCP 未标识 WPAD 主机,则查询 DNS 以找到 WPAD 作为其名称或别名的主机。

  4. 如果未标识该主机,并且代理配置脚本的位置由 Internet Explorer LAN 设置或配置文件指定,则使用此位置。

默认情况下,Internet Explorer 代理设置用于检测此代理。 如果应用程序基于非交互式帐户运行(没有用于配置 IE 代理设置的简便方法),或要使用不同于 IE 设置的代理设置,则可以通过创建定义了 <defaultProxy> 元素(网络设置)和 <proxy> 元素(网络设置)元素的配置文件,对代理进行配置。

对于所创建的请求,可通过将空 Proxy 用于该请求,禁用请求级别的自动代理检测,如下面的代码示例所示。

public static void DisableForMyRequest (Uri resource) { WebRequest request = WebRequest.Create (resource); request.Proxy = null; WebResponse response = request.GetResponse (); } 

结合上述解释,在问题电脑上,将自动检测代理关闭后,测试正常。

 

 

 
 

原文出处:https://www.cnblogs.com/Juning/p/11392683.html

.netcore System.InvalidOperationException: Response Content-Length mismatch

.netcore System.InvalidOperationException: Response Content-Length mismatch

System.InvalidOperationException: Response Content-Length mismatch

首先说明下在什么应用场景下出现此错误,以免误导读者,给解决此类问题带来不必要的麻烦。本篇是在用.netcoe3.1配置使用swagger的过程中,出现此类问题,请结合实际场景,进行调整。

场景介绍:

我是在使用.netcore3.1来构建一个webapi项目,提供的都是接口,因此,采用swagger来生成接口文档。目前使用的是5.6。

web服务器使用的nginx。

出现的问题:

正式发布后,时不时发生文档swagger/index.html打不开的情况,甚是奇怪。系统刚部署,就接到APP的反馈,接口文档打不开等问题,换了几个浏览器依然如此。后来百度和bing查了相关的问题,排在前面的是nginx配置问题,怀疑有这种可能,于是修改了nginx权限配置,结果依然无济于事。后,我又测试了本地程序,发现依然会出现该类问题。那就排除了nginx的可能。还有一种情况,当我们启动浏览器F12开发者工具时,在禁用缓存的情况下,接口文档地址一直返回空白。

在不禁用缓存的情况下,多次刷新,偶尔会出现正常。查看网络请求,发现多是css、js、json等这些问题,反回时好时坏,如: swagger.json 文件,

而且返回的content-length长度不一。大多是,65kb的样子。查看日志,程序也出现了错误,而且是Kestrel内部抛出这样的异常,查看Kestrel相关的资料,

发现MaxResponseBufferSize最大默认65,536,这与异常中的65,536不谋而合,纯是巧合否。于是修改了关于MaxResponseBufferSize的配置,将其设置为999999等,代码如下:

            Microsoft.Extensions.Configuration.ConfigurationBuilder builder = new ConfigurationBuilder();

            string iniPath = $"{AppDomain.CurrentDomain.BaseDirectory}Config/Api.ini";//配置文件
            IConfiguration iniConfiguration = builder.AddIniFile(iniPath).Build();

            var host = Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup<Startup>()
                          .UseContentRoot(AppDomain.CurrentDomain.BaseDirectory)
                          .UseUrls("http://*:5000")
                          .UseConfiguration(iniConfiguration)
                          .UseIISIntegration()
                          .ConfigureKestrel((options) =>
                           {
                               options.AllowSynchronousIO = false;
                               options.Limits.MaxResponseBufferSize = 999999;

                           });
            })
            .UseServiceProviderFactory(new AutofacServiceProviderFactory())
            .Build();
System.InvalidOperationException: Response Content-Length mismatch: too few bytes written (65,536 of 965210

结果,依然无济于事,本以为是配置不对,各种方式,结果相同。后又怀疑是否是swagger版本存在这样的问题,baidu和bing查了相关的资料,很少。试一试吧,于是升级了swagger版本,升级至5.4 、5.5、5.6,甚至降级,5.0、4.X等,依然无济于事。还有类似这样的错误:

Parse error and missing valid Swagger or OpenAPI version field 

看到这,还以为是版本号的问题,调整后仍无济于事。

后来突然想到,.netcore中间件的问题,.netcore中间件的线性组合,可能跟传递执行顺序有关,于是调整AddSwaggerGen的顺序,结果一切正常。所以,在.netcore中,尤其是中间件,顺序很重要。 

 

 

 

我们今天的关于打开连接时,'MSSQL'遇到带有HResult'x80131509'的'InvalidOperationException'类型的意外异常的分享就到这里,谢谢您的阅读,如果想了解更多关于$exception {在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke} System.InvalidOperationException、.NET 进程抛出 System.InvalidOperationException、.Net 连接 FTP 下载文件报错:System.InvalidOperationException: The requested FTP command is not supported whe...、.netcore System.InvalidOperationException: Response Content-Length mismatch的相关信息,可以在本站进行搜索。

本文标签: