AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-203275

Piedone's questions

Martin Hope
Piedone
Asked: 2017-01-15 18:16:46 +0800 CST

应用程序请求路由未清理缓存文件

  • 0

我已将 ARR 配置为执行输出缓存的反向代理。缓存条目的 TTL 为 20 分钟,但似乎缓存文件永远保留在磁盘上。

TTL 在应用程序的 Web.config 文件中根据重写规则进行配置:

    <rule name="Default ARR cache control" enabled="true">
      <match url=".*" />
      <serverVariables>
        <!-- First arg of value is: 1 to be always active, 0 only if there are no cache headers set. -->
        <set name="ARR_CACHE_CONTROL_OVERRIDE" value="0,max-age=1200" />
      </serverVariables>
    </rule>

在 HTTP 响应中,我也可以正确地看到这个 max-age 并且缓存确实过期了,我得到了新的结果。如果我打开一个缓存文件,它也会包含Cache-Control: public, max-age=1200在它的标题中。

但是缓存文件仍然存在,即使未使用。磁盘缓存的“缓存清理间隔”设置为 5 分钟,所以我认为文件最多只能保留 25 分钟,但也有几个月前的文件。

我错过了什么,如何让 ARR 删除过时的缓存文件?

这里解释了如何使用 scavenge.exe 来清理辅助驱动器上的缓存文件,但与主驱动器无关。或者如果我没有一个缓存驱动器慢慢填满,我应该手动运行这个实用程序吗?

iis arr
  • 1 个回答
  • 1399 Views
Martin Hope
Piedone
Asked: 2016-08-20 06:42:46 +0800 CST

应用程序请求路由反向代理不转发 X-ARR-ClientCert 标头

  • 1

我将 IIS ARR 设置为反向代理,后面有一个 Web 应用程序。如果我将 HTTPS 请求发送到标头中带有值的代理,X-ARR-ClientCert则该值将不会到达 Web 应用程序。如何解决这个问题?

我已将 SSL 设置设置为接受客户端证书。根据本指南,我还将system.webServer/proxy配置字段更改为其他内容,X-ARR-ClientCert但没有成功。

代理正确地传递任何其他标头。

iis arr
  • 1 个回答
  • 2916 Views
Martin Hope
Piedone
Asked: 2015-07-22 03:34:03 +0800 CST

在 SQL Server 上导入具有 25000 个表的 bacpac 文件失败并超时

  • 2

我想导入一个从 500MB 数据库中导出的 bacpac 文件,但该数据库有大约 25000 个表。bacpac 本身大约 18MB。

通过 SQL Server Management Studio 的 UI 导入失败并出现 OutOfMemoryException,因此我将按以下方式使用 SqlPackage.exe:

"C:\Program Files (x86)\Microsoft SQL Server\120\DAC\bin\SqlPackage.exe" /Action:Import /SourceFile:"path\to\MyDB.bacpac" /TargetConnectionString:"Data Source=localhost;Initial Catalog=MyDB;Integrated Security=True;"

我成功地使用此命令对数据库的先前(较小,表较少)版本进行了导入,但现在它失败并显示以下输出。我可以在这里做什么吗?

Importing to database 'MyDB' on server 'localhost'.
Creating deployment plan
Initializing deployment
Verifying deployment plan
Analyzing deployment plan
Importing package schema and data into database
Updating database
An unexpected failure occurred: Data plan execution failed with message Unable t
o reconnect to database: Timeout expired.  The timeout period elapsed prior to c
ompletion of the operation or the server is not responding..

Unhandled Exception: Microsoft.SqlServer.Dac.Data.DataException: Data plan execu
tion failed with message Unable to reconnect to database: Timeout expired.  The
timeout period elapsed prior to completion of the operation or the server is not
 responding. ---> Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlReverseEngineer
Exception: Unable to reconnect to database: Timeout expired.  The timeout period
 elapsed prior to completion of the operation or the server is not responding. -
--> System.Data.SqlClient.SqlException: Timeout expired.  The timeout period ela
psed prior to completion of the operation or the server is not responding. --->
System.ComponentModel.Win32Exception: The wait operation timed out
   --- End of inner exception stack trace ---
   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolea
n breakConnection, Action`1 wrapCloseInAction)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObj
ect stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand
 cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler,
TdsParserStateObject stateObj, Boolean& dataReady)
   at System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
   at System.Data.SqlClient.SqlDataReader.get_MetaData()
   at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, Run
Behavior runBehavior, String resetOptionsString)
   at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBe
havior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 time
out, Task& task, Boolean asyncWrite, SqlDataReader ds, Boolean describeParameter
EncryptionRequest)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehav
ior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletio
nSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite)
   at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehav
ior, RunBehavior runBehavior, Boolean returnStream, String method)
   at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, S
tring method)
   at System.Data.SqlClient.SqlCommand.ExecuteReader()
   at Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlReverseEngineerImpl.Execute
Populators(Tuple`2 connectionTuple, IList`1 populators, Int32 totalPopulatorsCou
nt, Int32 startIndex, Boolean progressAlreadyUpdated, ReverseEngineerOption opti
on, SqlReverseEngineerRequest request)
   --- End of inner exception stack trace ---
   at Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlReverseEngineerImpl.Execute
PopulatorsInPass(SqlReverseEngineerConnectionContext context, ReverseEngineerOpt
ion option, SqlReverseEngineerRequest request, Int32 totalCount, Tuple`2[] popul
atorsArray)
   at Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlReverseEngineerImpl.Populat
eBatch(SqlReverseEngineerConnectionContext context, SqlSchemaModel model, Revers
eEngineerOption option, ErrorManager errorManager, SqlReverseEngineerRequest req
uest, SqlImportScope importScope)
   at Microsoft.Data.Tools.Schema.Sql.SchemaModel.SqlReverseEngineer.PopulateEle
ments(SqlReverseEngineerConnectionContext context, DataSchemaModel model, Revers
eEngineerOption option, ErrorManager errorManager, SqlImportScope importScope, S
qlReverseEngineerRequest[] requests)
   at Microsoft.Data.Tools.Schema.Sql.Deployment.Steps.DacBulkCopyStep.GetImport
TableMetadata(ICollection`1 tables)
   at Microsoft.Data.Tools.Schema.Sql.Deployment.Steps.DacBulkCopyStep.Execute(I
DbConnection conn, CancellationToken token)
   at Microsoft.Data.Tools.Schema.Sql.Deployment.SqlPlanDeployment.Execute(Deplo
ymentPlanHandle plan, String connectionString, String targetDatabaseName, Boolea
n IsAzureTarget, String databaseScriptPath, String masterScriptPath, Cancellatio
nToken cancelToken)
   at Microsoft.SqlServer.Dac.Deployment.PlanExecutor.Execute(DeploymentPlan pla
n, SqlConnectionStringBuilder connectionString, Boolean isAzureTarget, LoggingCo
ntext loggingContext, CancellationToken cancelToken)
   --- End of inner exception stack trace ---
   at Microsoft.SqlServer.Dac.Deployment.PlanExecutor.Execute(DeploymentPlan pla
n, SqlConnectionStringBuilder connectionString, Boolean isAzureTarget, LoggingCo
ntext loggingContext, CancellationToken cancelToken)
   at Microsoft.SqlServer.Dac.DeployOperation.UpdateDatabaseData(LoggingContext
loggingContext, CancellationToken token)
   at Microsoft.SqlServer.Dac.DeployOperation.<>c__DisplayClass10.<>c__DisplayCl
ass12.<CreatePlanExecutionOperation>b__f()
   at Microsoft.Data.Tools.Schema.Sql.Dac.OperationLogger.Capture(Action action)

   at Microsoft.SqlServer.Dac.DeployOperation.<>c__DisplayClass10.<CreatePlanExe
cutionOperation>b__e(Object operation, CancellationToken token)
   at Microsoft.SqlServer.Dac.Operation.Microsoft.SqlServer.Dac.IOperation.Run(O
perationContext context)
   at Microsoft.SqlServer.Dac.ReportMessageOperation.Microsoft.SqlServer.Dac.IOp
eration.Run(OperationContext context)
   at Microsoft.SqlServer.Dac.DeployOperation.Microsoft.SqlServer.Dac.IOperation
.Run(OperationContext context)
   at Microsoft.SqlServer.Dac.OperationExtension.Execute(IOperation operation, D
acLoggingContext loggingContext, CancellationToken cancellationToken)
   at Microsoft.SqlServer.Dac.DacServices.InternalDeploy(IPackageSource packageS
ource, Boolean isDacpac, String targetDatabaseName, DacDeployOptions options, Ca
ncellationToken cancellationToken, DacLoggingContext loggingContext)
   at Microsoft.SqlServer.Dac.DacServices.ImportBacpac(BacPackage package, Strin
g targetDatabaseName, DacImportOptions importOptions, Nullable`1 cancellationTok
en)
   at Microsoft.Data.Tools.Schema.CommandLineTool.Program.DoImportBacpacOperatio
n(CommandLineArguments parsedArgs)
   at Microsoft.Data.Tools.Schema.CommandLineTool.Program.PerformAction(CommandL
ineArguments parsedArgs)
   at Microsoft.Data.Tools.Schema.CommandLineTool.Program.Run(String[] args)
   at Microsoft.Data.Tools.Schema.CommandLineTool.Program.Main(String[] args)
sql-server
  • 1 个回答
  • 6145 Views
Martin Hope
Piedone
Asked: 2014-03-01 16:17:43 +0800 CST

具有 IIS 的同一服务器上的 SNI 和通配符 SSL 证书

  • 12

我想托管一个网站,该网站应该监听子域(例如 sub.domain.com)以及多个网站,这些网站使用 IIS 和 SSL 位于二级域(例如 domain2.com、domain3.com)下。

对于具有子域的网站,我有一个通配符证书 (*.domain.com),我也有专门用于其他网站的证书(domain2.com 和 domain3.com)。

这样的设置是否可以托管在同一个 IIS 上(如果重要,在 Azure 云服务 Web 角色中)?

问题正是 titobf在这里解释的:理论上,为此我们需要使用 SNI 进行绑定,为 domain2/3.com 指定主机,然后为 *.domain.com 指定一个包含 * 主机的包罗万象的网站。但在实践中,无论如何设置绑定,如果万能网站在它上面,它也会接收到 domain2/3.com 的所有请求(尽管据说它只是作为最后的手段才匹配)。

任何帮助,将不胜感激。

仍未解决

不幸的是,我无法解决这个问题:它似乎只能以极其复杂的方式解决,比如创建一个位于 IIS 和互联网之间的软件(基本上是一个防火墙)并修改传入的请求(在 SSL 握手发生之前! ) 以允许该场景。我相当有信心这对于 IIS 是不可能的,无论如何,即使是本机模块也不可能。

我必须澄清一下:我们使用 Azure 云服务,因此我们有一个进一步的限制,即我们不能使用多个 IP 地址(请参阅:http: //feedback.azure.com/forums/169386-cloud-services-web-and -worker-role/suggestions/1259311-multiple-ssl-and-domains-to-one-app )。如果您可以将多个 IP 指向您的服务器,那么您就不会遇到此问题,因为您也可以为 IP 创建绑定,并且这些绑定将与通配符绑定一起使用。更具体地说,您需要一个用于通配符站点的 IP(但由于您现在有一个单独的 IP,因此您不必配置通配符主机名绑定)和所有其他非通配符站点的另一个 IP。

实际上,我们的解决方法是使用非标准 SSL 端口 8443。因此 SNI 绑定实际上绑定到此端口,因此它与其他绑定一起工作。不好,但对我们来说是一种可接受的解决方法,直到您可以将多个 IP 用于 Web 角色。

现在的非工作绑定

第一个 https 绑定是带有简单证书的 SNI,第二个不是 SNI,带有通配符证书。

http 站点和 SNI https 站点一样有效,但是带有通配符绑定的站点会给出“HTTP 错误 503。服务不可用”。(没有任何进一步的信息,没有失败的请求跟踪或事件日志条目)。 绑定

终于让它基本上工作了

像 Tobias 描述的那样启用 ETW 跟踪日志表明根本错误如下:

请求(请求 ID 0xF500000080000008)被拒绝,原因是:UrlGroupLookupFailed。

据我了解,这意味着 http.sys 无法将请求路由到任何可用的端点。

检查已注册的端点netsh http show urlacl表明确实有为端口 443 注册的东西:

Reserved URL            : https://IP:443/
    User: NT AUTHORITY\NETWORK SERVICE
        Listen: Yes
        Delegate: No
        SDDL: D:(A;;GX;;;NS)

删除它netsh http delete urlacl url=https://IP:443/最终启用了我的 SSL 绑定。

iis
  • 3 个回答
  • 13978 Views
Martin Hope
Piedone
Asked: 2013-12-22 05:10:43 +0800 CST

ARR - 为某些请求动态禁用磁盘缓存(经过身份验证的用户)

  • 2

这是关于应用程序请求路由和动态禁用某些请求的磁盘缓存(请求来自经过身份验证的用户;它们是否经过身份验证可以由自定义代码决定)。

在我的设置中,有一个运行 ARR 的服务器,将请求分派到不同服务器上的 ASP.NET MVC 站点。该站点使用表单身份验证(有时是 HTTP 基本身份验证),因此身份验证发生在 MVC 站点上,而不是在 ARR 中:基本上,当用户进行身份验证时,站点会创建一个表单身份验证 cookie。

我希望在 ARR 中发生以下情况:

  • 为匿名用户做输出缓存。
  • 对于经过身份验证的用户,仅缓存静态文件(例如 .css、、.js、.jpg 文件),不缓存动态页面。

这种情况下怎么可能有缓存配置规则呢?我尝试了多种方法:

  • 缓存头:MVC 应用程序发送的缓存控制头在这里不可用,因为想象一下:第 1 页在 ARR 的缓存中。用户验证并访问页面 1。MVC 应用程序将发送一个 no-cache 标头,但请求未到达它,因此用户获取缓存版本。
  • 无缓存 URL:尽管我可能定义了不应缓存其中包含“no-arr-cache”的 URL 将与 URL 重写一起使用,即使用自定义 URL 重写提供程序我会将经过身份验证的请求重写为...?无 arr 缓存。除了不关心查询字符串的 ARR 缓存控制规则之外,问题在于 ARR 在评估缓存配置规则时只考虑请求的 URL,而不是重写的 URL。

先感谢您!

我从IIS 论坛交叉发布了这个,因为那里没有人回复。

cache
  • 2 个回答
  • 5510 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve