Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何修复';502-Web服务器在充当网关或代理服务器时收到无效响应';_C#_Sql Server_Asp.net Core - Fatal编程技术网

C# 如何修复';502-Web服务器在充当网关或代理服务器时收到无效响应';

C# 如何修复';502-Web服务器在充当网关或代理服务器时收到无效响应';,c#,sql-server,asp.net-core,C#,Sql Server,Asp.net Core,我开发了一个网站,用户必须上传一个excel文件,并在后台处理分析该文件并插入数据库。但一分钟后,我收到了这个错误的回应 '502-Web服务器在充当网关或代理服务器时收到无效响应。您正在查找的页面有问题,无法显示。当Web服务器(充当网关或代理时)联系上游内容服务器时,它收到来自内容服务器的无效响应。” 有趣的是,当我检查数据库时,我看到所有数据都正确插入 public async Task<IActionResult> UploadExcel(int pid) { var

我开发了一个网站,用户必须上传一个excel文件,并在后台处理分析该文件并插入数据库。但一分钟后,我收到了这个错误的回应

'502-Web服务器在充当网关或代理服务器时收到无效响应。您正在查找的页面有问题,无法显示。当Web服务器(充当网关或代理时)联系上游内容服务器时,它收到来自内容服务器的无效响应。”

有趣的是,当我检查数据库时,我看到所有数据都正确插入

public async Task<IActionResult> UploadExcel(int pid)
{
    var fileinput = Request.Form.Files[0];
    var fileName = Path.GetFileName(DateTime.Now.ToString("yyyyMMddHHmmss") + "_" + fileinput.FileName);

    var path = Path.Combine(_environment.WebRootPath, "Files/" + fileName);

    using (var fileStrem = new FileStream(path, FileMode.Create))
    {
        await fileinput.CopyToAsync(fileStrem).ConfigureAwait(false);
    }

    FileInfo file = new FileInfo(path);
    using (ExcelPackage package = new ExcelPackage(file))
    {
        using (var dbase = new ApplicationDbContextFactory().CreateDbContext(new string[] { }))
        {
            using (var dbtrans = dbase.Database.BeginTransaction())
            {
                try
                {
                    ExcelWorksheet worksheet = package.Workbook.Worksheets[1];
                    int rowCount = worksheet.Dimension.Rows;
                    int ColCount = worksheet.Dimension.Columns;

                    for (int row = 2; row <= rowCount; row++)
                    {
                        mymodel.field1 = worksheet.Cells[1, 1].Value != null ? worksheet.Cells[1, 1].Value.ToString() : "";
                        mymodel.field1 = worksheet.Cells[1, 2].Value != null ? worksheet.Cells[1, 2].Value.ToString() : "";
                        mymodel.field1 = worksheet.Cells[1, 3].Value != null ? worksheet.Cells[1, 3].Value.ToString() : "";
                        mymodel.field1 = worksheet.Cells[1, 4].Value != null ? worksheet.Cells[1, 4].Value.ToString() : "";
                        mymodel.field1 = worksheet.Cells[1, 5].Value != null ? worksheet.Cells[1, 5].Value.ToString() : "";
                        mymodel.field1 = worksheet.Cells[1, 6].Value != null ? worksheet.Cells[1, 6].Value.ToString() : "";
                        mymodel.field1 = worksheet.Cells[1, 7].Value != null ? worksheet.Cells[1, 7].Value.ToString() : "";
                        mymodel.field1 = worksheet.Cells[1, 8].Value != null ? worksheet.Cells[1, 8].Value.ToString() : "";

                        dbase.SupportIndices.Add(mymodel);

                        await dbase.SaveChangesAsync();
                    }
                    dbtrans.Commit();
                    return Json(new { state = "ok" });
                }
                catch (Exception e)
                {
                    dbtrans.Rollback();
                    return Json(new { state = "err" });
                }
            }
        }
    }
}
public异步任务上传Excel(int-pid)
{
var fileinput=Request.Form.Files[0];
var fileName=Path.GetFileName(DateTime.Now.ToString(“yyyyMMddHHmmss”)+“uju”+fileinput.fileName);
var path=path.Combine(_environment.WebRootPath,“Files/”+fileName);
使用(var fileStrem=newfilestream(路径,FileMode.Create))
{
wait fileinput.CopyToAsync(fileStrem.configurewait(false);
}
FileInfo file=新的FileInfo(路径);
使用(ExcelPackage=新的ExcelPackage(文件))
{
使用(var dbase=new ApplicationDbContextFactory().CreateDbContext(新字符串[]{}))
{
使用(var dbtrans=dbase.Database.BeginTransaction())
{
尝试
{
Excel工作表=package.Workbook.Worksheets[1];
int rowCount=工作表.Dimension.Rows;
int ColCount=工作表.Dimension.Columns;

对于(int row=2;rowi,为什么在每次迭代中调用
await dbase.savechangesync();
?这会花费太多时间来处理完成。
在您的操作单元中有两台服务器,第一台用于上载webapp,另一台用于将请求从web路由到组织内部的本地服务器。在此体系结构中,安全团队为两台服务器的连接分配一个超时,首先检查此连接持续时间,然后修复代码,您可以使用
SqlBulkCopy
,或者仅使用call
SaveChanges
一次。

我向您建议一件事,您必须确保在IIS配置中找到它,简而言之,您的体系结构肯定包含在旧版和新版的.net framework上,并且可能也是核心,此问题的原因是您包含的引用不知道在pr中响应Production env因此,使用他们的IIS标识工具右键单击并将时间延长到4分钟,然后在事件查看器中进行监视。您可以轻松地通过此错误,并找到您在此处谈论的参考信息。

如何触发客户端上传?是Ajax请求吗?是的。我使用客户端的Ajax请求。请检查dB是否符合要求已配置文本超时?如果未配置,则将使用默认时间,这在您的情况下是不够的。我使用以下代码`public ApplicationDbContext(DbContextOptions):base(options){Database.SetCommandTimeout(150000);}`但事实并非如此work@Iman您的项目托管的服务器和服务web请求的服务器不一样,这两台服务器之间的最大连接时间我认为是60秒。我没有两台服务器。我只有一台用于测试和开发此项目的服务器。我使用wait和async方法,因为我看到了许多示例和示例建议使用包含i/O部分的操作时,最好将函数更改为异步类型。