小编Jak*_*icz的帖子

预构建MSBuild任务以更新AssemblyInfo与内置exe不同步

我在Visual Studio 2008中使用调用msbuild的预构建任务:

C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe $(MSBuildProjectDirectory)\version.targets /p:Configuration=$(ConfigurationName)
Run Code Online (Sandbox Code Playgroud)

在version.targets中,我正在更新AssemblyInfo.cs文件以替换版本信息:

   <FileUpdate
        Encoding="ASCII"
        Files="$(MSBuildProjectDirectory)\Properties\AssemblyInfo.cs"
        Regex="AssemblyInformationalVersion\(&quot;.*&quot;\)\]" 
        ReplacementText="AssemblyInformationalVersion(&quot;Product $(ConfigurationString) ($(buildDate))&quot;)]"
    />
Run Code Online (Sandbox Code Playgroud)

当我通过Visual Studio 2008构建项目时,它构建没有任何问题.

但是当我查看生成的exe的版本信息时,它包含上一个时间戳,即使AssemblyInfo.cs已经使用"正确"更改了.

似乎主编译任务没有看到预编译的变化,它总是落后.

我做错了什么想法?

c# msbuild prebuild visual-studio generated

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

IIS作为反向代理 - 压缩来自后端服务器的重写响应

我正在实现一个反向代理,用于将请求路由到后端服务器.

功能上一切正常,但是我担心来自后端服务器的所有响应都会在没有压缩的情况下传输到客户端(Web浏览器).

设置如下:

  • 内部域上无法公开访问的后端服务器.托管Web应用程序https://internal.app
  • 带有IIS 7.5的前端Web服务器,托管主公共网站并充当后端服务器的代理.主要网站是https://site.com.

我想所有请求路由到https://site.com/app/WHATEVERhttps://internal.app/WHATEVER的方式是透明的客户.

我当前的设置基于URL Rewrite 2.0和Application Request Routing IIS扩展.一般方法基于以下文章的指导原则:

有关节web.config的的site.com应用程序:

<system.webServer>
    <rewrite>
        <rules>
            <rule name="Route the requests for backend app" stopProcessing="true">
                <match url="^app/(.*)" />
                <conditions>
                    <add input="{CACHE_URL}" pattern="^(https?)://" />
                </conditions>
                <action type="Rewrite" url="{C:1}://internal.app/{R:1}" />
                <serverVariables>
                    <set name="HTTP_ACCEPT_ENCODING" value="" />
                </serverVariables>
            </rule>
        </rules>
        <outboundRules>
            <rule name="RewriteBackendAbsoluteUrlsInResponse" preCondition="ResponseIsHtml1">
                <match filterByTags="A, Area, Base, Form, Frame, Head, IFrame, Img, Input, Link, Script" pattern="^http(s)?://internal.app(\:80)?/(.*)" />
                <action type="Rewrite" value="/app/{R:3}" …
Run Code Online (Sandbox Code Playgroud)

asp.net iis reverse-proxy http-compression arr

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

为什么FindMimeFromData在一台主机上识别image/tiff,而在另一台主机上却没有?

我使用的是FindMimeFromDataurlmon.dll嗅探上传的文件的MIME类型.根据Internet Explorer中的MIME类型检测,image/tiff是一种公认​​的MIME类型.它在我的开发机器(Windows 7 64位,IE9)上工作正常,但在测试环境(Windows Server 2003 R2 64位,IE8)上不起作用 - 它返回application/octet-stream而不是image/tiff.

上述文章描述采取确定MIME类型的具体步骤,但由于image/tiff是在26种识别的类型中的一种,它应该结束于步骤2(嗅探的实际数据),因此,文件扩展名和注册的应用程序(和其它注册表的东西)不应该.

哦,对了,TIFF文件实际上在测试服务器上的程序(Windows图片和传真查看器)相关联.并不是Windows注册表中没有对TIFF的任何引用.

任何想法为什么它不能按预期工作?

编辑: FindMimeFromData使用如下:

public class MimeUtil
{
    [DllImport("urlmon.dll", CharSet = CharSet.Unicode, ExactSpelling = true, SetLastError = false)]
    private static extern int FindMimeFromData(
        IntPtr pBC,
        [MarshalAs(UnmanagedType.LPWStr)] string pwzUrl,
        [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.I1, SizeParamIndex = 3)] byte[] pBuffer,
        int cbSize,
        [MarshalAs(UnmanagedType.LPWStr)] string pwzMimeProposed,
        int dwMimeFlags,
        out IntPtr ppwzMimeOut,
        int dwReserved);

    public static string GetMimeFromData(byte[] …
Run Code Online (Sandbox Code Playgroud)

c# winapi mime urlmon mime-types

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