Asp.net mvc 资源作为目录连接/硬链接-更改跟踪无法正常工作

Asp.net mvc 资源作为目录连接/硬链接-更改跟踪无法正常工作,asp.net-mvc,iis,junction,Asp.net Mvc,Iis,Junction,我的ASP.NET MVC应用程序之外有TypeScript文件。 这些类型脚本文件在多个web应用程序中很常见 以前,如果修改了TypeScript文件,观察者会自动将其构建到js中,但之后,必须构建项目或运行脚本,将.ts和.js文件复制到web应用程序的文件夹(~/Assets/js)中,从那里提供这些文件 现在,我们尝试将TypeScript根文件夹作为NTFS目录连接硬链接到~/Assets/js 这样做的目的是加快开发时间,因为如果成功了,只需在一个地方编辑TypeScript文件并

我的ASP.NET MVC应用程序之外有TypeScript文件。
这些类型脚本文件在多个web应用程序中很常见

以前,如果修改了TypeScript文件,观察者会自动将其构建到js中,但之后,必须构建项目或运行脚本,将
.ts
.js
文件复制到web应用程序的文件夹(
~/Assets/js
)中,从那里提供这些文件

现在,我们尝试将TypeScript根文件夹作为NTFS目录连接硬链接到
~/Assets/js

这样做的目的是加快开发时间,因为如果成功了,只需在一个地方编辑TypeScript文件并保存它们。无需复制到输出文件夹,因为文件链接在那里

结果并不像预期的那样。有时,编辑的文件会被刷新(在浏览器中使用它们重新加载页面时),有时则不会

后来我读到
FileSystemWatcher
不适用于目录连接,因此我希望IIS使用
FileSystemWatcher
,如果开发人员在其原始公共位置(连接点指向的位置)更改.ts文件,则不会发出任何更改事件

我想无论如何都是这样,但不知怎么的,有时候文件会被刷新,我不知道怎么做

我可以和Fiddler核实一下,当文件被错误地提供时——文件的旧版本被提供,没有修改——它不是缓存在浏览器中,而是由服务器发送的

可能的问题:

  • 如何解决这个问题?:)
  • 如何在IIS(Express)中禁用文件缓存以进行开发
  • 如何正确链接IIS中的目录,使更改跟踪工作正常

您使用连接将这些常用文件夹映射到您的站点,而不是使用虚拟目录映射它们,这有什么原因吗?我想这可以解决你的问题。你是说IIS虚拟目录?我可以在Web.config中设置smg吗?指向MVC项目之外?不确定“smg”是什么意思?但您可以将IIS虚拟目录指向站点根目录之外的文件夹。您只需确保为站点的应用程序池分配了正确的权限,即可读取“外部”物理目录。我如何才能做到这一点?可以在Web.config中完成吗?请给我举个例子,它听起来像输出缓存,但除非您为特定扩展设置了规则,否则IIS express不应保存输出缓存。您是否尝试在IIS中禁用客户端缓存头?是否有原因使用连接将这些公用文件夹映射到您的站点,而不是使用虚拟目录映射它们?我想这可以解决你的问题。你是说IIS虚拟目录?我可以在Web.config中设置smg吗?指向MVC项目之外?不确定“smg”是什么意思?但您可以将IIS虚拟目录指向站点根目录之外的文件夹。您只需确保为站点的应用程序池分配了正确的权限,即可读取“外部”物理目录。我如何才能做到这一点?可以在Web.config中完成吗?请给我举个例子,它听起来像输出缓存,但除非您为特定扩展设置了规则,否则IIS express不应保存输出缓存。您是否尝试过在IIS中禁用客户端缓存头?