我的visual studio解决方案窗口中有Web.config
和Web.debug.config
及Web.release.config
个文件。
我想为发布和调试设置不同的电子邮件配置。
所以我设置了Web.debug.config文件
<system.net>
<mailSettings>
<smtp deliveryMethod="SpecifiedPickupDirectory">
<network host="localhost" port="587" defaultCredentials="true"/>
<specifiedPickupDirectory pickupDirectoryLocation="C:\Temp\Mail\Debug"/>
</smtp>
</mailSettings>
</system.net>
我设置了我的Web.release.config
<system.net>
<mailSettings>
<smtp deliveryMethod="SpecifiedPickupDirectory">
<network host="localhost" port="587" defaultCredentials="true"/>
<specifiedPickupDirectory pickupDirectoryLocation="C:\Temp\Mail\Release"/>
</smtp>
</mailSettings>
</system.net>
当我运行applciaitons时,我的设置无法加载到SmtpClient
对象。
为什么不从Web.debug.config
中获取设置答案 0 :(得分:4)
这仅适用于发布项目的情况,而不适用于IDE。在这里阅读更多内容:
https://msdn.microsoft.com/en-us/library/dd465318(v=vs.100).aspx
答案 1 :(得分:2)
如前所述,它不是webconfig而不是转换。在以发布模式构建/发布时,转换将转换为web.config。
您必须在web.release.config中设置一些元信息,以便如何处理转换,例如:
<system.net>
<mailSettings>
<smtp deliveryMethod="SpecifiedPickupDirectory">
<network host="localhost" port="587" defaultCredentials="true"/>
<specifiedPickupDirectory pickupDirectoryLocation="C:\Temp\Mail\Release"/ xdt:Transform="Replace">
</smtp>
</mailSettings>
</system.net>
这将指示转换将web.config中的specifiedPickupDirectory标记替换为web.release.config中的标记。
如果你想在构建时进行转换,而不仅仅是在发布时,你必须将一个TransformXml添加到csproj中的BeforeBuild部分。
答案 2 :(得分:1)
https://visualstudiogallery.msdn.microsoft.com/05bb50e3-c971-4613-9379-acae2cfe6f9e
答案 3 :(得分:0)
https://devblogs.microsoft.com/aspnet/asp-net-web-projects-web-debug-config-web-release-config/
调试用于开发环境
发布生产环境
Web.config适用于本地计算机