C# 发布Web上的IIS会话丢失
以前,在Visual Studio 2012中的Web项目中,我可以点击“发布Web”按钮,只要我在大多数情况下没有对任何.config或.cs文件进行任何更改,我的会话数据就会保持不变,这样我就不必在每次对.css或.html文件进行小的更改时再次登录 在搞乱了一些设置以使w3wp.exe调试正常运行后,现在每次单击“发布Web”时,会话数据都会丢失,即使在发布之间完全没有做任何更改C# 发布Web上的IIS会话丢失,c#,session,visual-studio-2012,web,iis-7.5,C#,Session,Visual Studio 2012,Web,Iis 7.5,以前,在Visual Studio 2012中的Web项目中,我可以点击“发布Web”按钮,只要我在大多数情况下没有对任何.config或.cs文件进行任何更改,我的会话数据就会保持不变,这样我就不必在每次对.css或.html文件进行小的更改时再次登录 在搞乱了一些设置以使w3wp.exe调试正常运行后,现在每次单击“发布Web”时,会话数据都会丢失,即使在发布之间完全没有做任何更改 我不知道我做了什么来改变这一点,但我真的需要能够在没有每次登录的情况下对静态文件进行更改。如何阻止会话被终止?
我不知道我做了什么来改变这一点,但我真的需要能够在没有每次登录的情况下对静态文件进行更改。如何阻止会话被终止?这取决于您发布的内容。即使您没有在知情的情况下进行任何更改,应用程序域也会在以下情况下卸载:
再次被复制(内容无关紧要)web.config
文件夹已修改(同样,具有较新时间戳的相同DLL被视为修改)bin
web.config
。我不确定的一点是,如果没有任何转换(.debug.config或.release.config),它是否会更新web.config
您可以尝试以下几种方法:
- 将
的构建操作设置为“无”。这将防止它被完全复制到输出web.config
- 定义一个新的构建配置,比如“静态内容”。使用此生成配置,定义一个新的发布配置文件,例如“静态内容”。将这些行添加到
文件中.csproj
现在,在构建时,应该可以看到静态内容被发布到发布文件夹中 注意事项:<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> ... <OutputPath>bin\</OutputPath> <NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn> <ExcludeFilesFromDeployment>web.config</ExcludeFilesFromDeployment> <ExcludeFoldersFromDeployment>bin</ExcludeFoldersFromDeployment> </PropertyGroup>
以递归方式复制文件,这有助于重建文件夹树。如果您有嵌套的文件夹,如%(RecursiveDir)
和css\font
,则会很有用css\images
- 任务还有一些其他属性(如
,ContinueOnError
),您可能需要修改这些属性overwriteradonlyfiles
- 您还可以在目标路径中使用标准VS宏(例如,
,$(SolutionRoot)
等)$(OutputDir)
再次被复制(内容无关紧要)web.config
文件夹已修改(同样,具有较新时间戳的相同DLL被视为修改)bin
。我不确定的一点是,如果没有任何转换(.debug.config或.release.config),它是否会更新web.config
您可以尝试以下几种方法:web.config
- 将
的构建操作设置为“无”。这将防止它被完全复制到输出web.config
- 定义一个新的构建配置,比如“静态内容”。使用此生成配置,定义一个新的发布配置文件,例如“静态内容”。将这些行添加到
文件中.csproj
现在,在构建时,应该可以看到静态内容被发布到发布文件夹中 注意事项:<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> ... <OutputPath>bin\</OutputPath> <NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn> <ExcludeFilesFromDeployment>web.config</ExcludeFilesFromDeployment> <ExcludeFoldersFromDeployment>bin</ExcludeFoldersFromDeployment> </PropertyGroup>
以递归方式复制文件,这有助于重建文件夹树。如果您有嵌套的文件夹,如%(RecursiveDir)
和css\font
,则会很有用css\images
- 任务还有一些其他属性(如
,ContinueOnError
),您可能需要修改这些属性overwriteradonlyfiles
- 您还可以在目标路径中使用标准VS宏(例如,
,$(SolutionRoot)
等)$(OutputDir)
- web配置更改
- bin文件夹内容更改
- IIS应用程序池回收
- web配置更改
- bin文件夹内容更改
- IIS应用程序池回收
- 你是说asp.net会话吗?如果是,则每次重新启动应用程序池时都会恢复。这可能是由于:
你是说asp.net会话吗?如果是,则每次重新启动应用程序池时都会恢复。这可能是由于:IIS Manager -> Application Pools ->-> Select Site Application Pool ->->-> Advanced Settings on the actions menu
Start Mode = Always Running Disable Overlapped Recycle = true