小编Die*_* C.的帖子

使用Web.Config转换的高级任务

有没有人知道是否有办法"转换"值的特定部分而不是替换整个值或属性?

例如,我有几个appSettings条目,指定不同Web服务的Url.这些条目在开发环境中与生产环境略有不同.有些不像其他人那么微不足道

<!-- DEV ENTRY -->
<appSettings>
 <add key="serviceName1_WebsService_Url" value="http://wsServiceName1.dev.domain.com/v1.2.3.4/entryPoint.asmx" />
 <add key="serviceName2_WebsService_Url" value="http://ma1-lab.lab1.domain.com/v1.2.3.4/entryPoint.asmx" />
</appSettings>

<!-- PROD ENTRY -->
<appSettings>
 <add key="serviceName1_WebsService_Url" value="http://wsServiceName1.prod.domain.com/v1.2.3.4/entryPoint.asmx" />
 <add key="serviceName2_WebsService_Url" value="http://ws.ServiceName2.domain.com/v1.2.3.4/entryPoint.asmx" />
</appSettings>
Run Code Online (Sandbox Code Playgroud)

请注意,在第一个条目中,唯一的区别是".prod"中的".dev".在第二项,子域名是不同的:"MA1-lab.lab1""ws.ServiceName2"

到目前为止,我知道我可以在Web中做这样的事情.Release.Config:

<add xdt:Locator="Match(key)" xdt:Transform="SetAttributes(value)" key="serviceName1_WebsService_Url" value="http://wsServiceName1.prod.domain.com/v1.2.3.4/entryPoint.asmx" />
<add xdt:Locator="Match(key)" xdt:Transform="SetAttributes(value)" key="serviceName2_WebsService_Url" value="http://ws.ServiceName2.domain.com/v1.2.3.4/entryPoint.asmx" />
Run Code Online (Sandbox Code Playgroud)

但是,每次更新该Web服务的版本时,我都必须更新Web.Release.Config,这会破坏我的web.config更新的目的.

我知道我也可以将该URL拆分为不同的部分并单独更新它们,但我宁愿将它全部放在一个键中.

我已经浏览了可用的web.config Transforms但是nothings似乎是我想要完成的东西.

这些是我用作参考的网站:

Vishal Joshi的博客,MSDN帮助Channel9视频

任何帮助将非常感激!

-D

asp.net web-config transformation visual-studio-2010 web-deployment

41
推荐指数
1
解决办法
1万
查看次数

使Web.config转换在本地工作

我想让web.config转换在本地工作,但显然只在进行部署时才会发生转换.

有没有人知道如何运行msbuild目标"TransformWebConfig"而不通过"rebuild"进程,还指定并输出目录在哪里吐出转换后的web.config?

编辑:使用Sayed的答案,我创建了一个.bat文件来为我运行任务:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Msbuild.exe "D:\Demo\Transformation.proj" /t:TransformWebConfig 

copy /Y  "D:\Demo\Web.config" "D:\MyProject\Web.config" 

del ""D:\Demo\Web.config"
Run Code Online (Sandbox Code Playgroud)

"Transformation.proj"是Sayed的代码片段的副本,在下面的答案中.只需指定转换的源,目标和目标.新文件(在本例中为已转换的"web.config")将位于"D:\ Demo"目录中.我只是将其复制以覆盖我的项目的web.config,最后,删除"demo"文件夹中生成的文件.

另外,我创建了一个宏来运行这个批处理文件并为我执行转换:

Public Module DoTransform
    Sub RunTransformBatchFile()
        Try
          Process.Start("D:\Demo\RunTransform.bat")
        Catch ex As System.Exception
            MsgBox(ex.Message)
        End Try
    End Sub
End Module
Run Code Online (Sandbox Code Playgroud)

您还可以在工具栏上添加一个按钮来运行此批处理和/或指定要执行的快捷键.

asp.net web-config visual-studio-2010 web-deployment msdeploy

38
推荐指数
2
解决办法
1万
查看次数

如何从ASP.NET中的Web请求返回pdf?

简而言之,我希望有人能够点击链接,并获得一次性使用的pdf.我们有库来创建PDF文件,所以这不是问题.

我们可以生成指向aspx页面的链接,让该页面生成pdf,将pdf保存到文件系统,然后将Response.Redirect保存到保存的pdf.然后我们必须以某种方式跟踪和清理PDF文件.

由于我们不需要保留这些数据,如果可能的话,我想做的是让aspx页面生成pdf,并将其作为对原始请求的响应直接提供.这可能吗?

(在我们的例子中,我们正在使用C#,我们希望提供pdf,但似乎任何解决方案都可能适用于各种.NET语言并返回文件类型.)

pdf asp.net

22
推荐指数
1
解决办法
4万
查看次数