小编Mar*_*rek的帖子

如何指定HTTP过期标头?(ASP.NET MVC + IIS)

我已经在我的ASP.NET MVC应用程序中使用输出缓存.

页面速度告诉我在响应头中为css和图像指定HTTP缓存过期.

我知道Response对象包含一些控制缓存过期的属性.我知道这些属性可以用来控制我从我的代码服务的响应的HTTP缓存:

Response.Expires
Response.ExpiresAbsolute
Response.CacheControl
Run Code Online (Sandbox Code Playgroud)

或者

Response.AddHeader("Expires", "Thu, 01 Dec 1994 16:00:00 GMT");
Run Code Online (Sandbox Code Playgroud)

问题是如何为自动提供的资源设置Expires标头,例如images,css等?

iis asp.net-mvc caching http-headers

52
推荐指数
2
解决办法
4万
查看次数

打破开源许可证的人会怎么样?

如果您破解开源许可证并在封闭源项目中包含GPL下发布的代码,会发生什么?

你能去监狱吗?谁会起诉你?为了什么?创建免费源代码的人"不尊重意志"?在(任何国家)的管辖区内是否有任何支持会对那些不尊重软件自由的人施加任何惩罚?

受到我刚才看到的一个问题的启发:它是否允许在封闭源代码中使用开源的想法,而无法找到这个问题的任何答案.

open-source

40
推荐指数
5
解决办法
8046
查看次数

如何使用WiX安装程序将应用程序与现有文件类型相关联?

与此相关:如何使用WiX安装程序注册文件类型/扩展名?但不是重复.

我需要处理现有的文件类型(.jpg文件).

我不希望我的应用程序成为.jpg的默认处理程序.我只想扩展"打开方式"菜单,其中包含指向我的应用程序的链接.

我看到HKCR\.jpg\OpenWithList\HKCR\.jpg\OpenWithProgIds\在注册表中,但我不确定是否写这些以及如何正确使用WiX.我应该使用这样的东西吗?

<ProgId Id='??what here?' Description='Jpeg handled by my App'>
  <Extension Id='jpg' ContentType='image/jpeg'>
    <Verb Id='openwithmyapp' Sequence='10' Command='OpenWithMyApp' Target='[!FileId]' Argument='"%1"' />
  </Extension>
</ProgId>
Run Code Online (Sandbox Code Playgroud)

这里有很多失败的方法(就像Photo Mechanics一样,在安装了这个软件后,HKCR的图像文件类型真的很乱).

如何正确使用WiX?

registry installer windows-installer file-type wix

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

ASP.NET MVC:如何在返回状态代码404时提供内容?

可能重复:
如何配置IIS以使用我的自定义内容提供404响应?

我想在我的ASP.NET MVC应用程序中提供用户友好的"未找到"页面,同时提供404状态代码.(基于这个答案)

我已经有了如何捕获无效路由的机制,我的ErrorController/Handle404操作提供了自定义404页面.

我目前的执行情况Handle404:

    public ActionResult Handle404()
    {
        Response.StatusCode = 404;
        return View("NotFound");
    }
Run Code Online (Sandbox Code Playgroud)

目前,IIS将页面作为404 - File or directory not found. The resource you are looking for might have been removed, had its name changed, or is temporarily unavailable.(标准IIS页面,而不是我的用户友好内容)

如何Handle404在仍然提供内容的情况下将404状态代码包含在操作所提供的结果中?

c# iis asp.net-mvc http-status-code-404

19
推荐指数
1
解决办法
4272
查看次数

ASP.NET MVC:如何创建可用的UrlHelper实例?

我正在使用quartz.net来安排asp.net mvc应用程序中的常规事件.

计划作业应调用需要UrlHelper实例的服务层脚本(用于根据via urlHelper.Action(..)服务将发送的电子邮件中包含的正确路由()创建URL ).

我不想将链接硬编码到电子邮件中 ​​- 应该使用urlhelper解决它们.

工作:

public class EvaluateRequestsJob : Quartz.IJob
{
    public void Execute(JobExecutionContext context)
    {
        //  where to get a usable urlHelper instance?
        ServiceFactory.GetRequestService(urlHelper).RunEvaluation();
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意,这不是在MVC管道中运行.没有提供当前请求,代码由Quartz调度程序在定义的时间运行.

如何在指定位置使用UrlHelper实例?

如果无法构建UrlHelper,我看到的另一个选项是通过执行HTTP请求使作业"自调用"控制器操作 - 执行操作时我当然会有一个UrlHelper实例 - 但是这个对我来说似乎有点讨厌.

asp.net-mvc quartz-scheduler quartz.net

15
推荐指数
1
解决办法
5304
查看次数

如何在WPF ComboBox中显示下拉列表值/所选项的不同值?

我有一个WPF组合框绑定到具有长描述的项目列表.

绑定到ComboBox的类型具有短和长描述作为属性.目前,我对完整描述具有约束力.

comboBox.DisplayMemberPath = "FullDescription";
Run Code Online (Sandbox Code Playgroud)

如何确保在选择项目并将其显示为组合框中的单个项目时,它将显示为ShortDescription属性值,同时显示下拉列表FullDescription

wpf binding combobox wpf-controls

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

TortoiseSVN:如何在不将工作副本切换到主干的情况下将分支合并回主干?

我们在团队环境中使用TortoiseSVN.在处理更大的功能时,我创建了一个功能分支,在那里工作一周,每隔一天合并从主干到我的分支的更改,当功能完成后,我将其合并回主干.

合并时,我总是做以下事情:

  1. 将所有内容提交给分支
  2. 将整个工作副本切换到主干,更改(主要是删除)数百个文件
  3. 使用"重新整合分支"选项,合并30秒前已经在磁盘上的分支的已更改/新文件
  4. 验证代码是否编译
  5. 承诺干线

这对我来说似乎效率低下 - 我创建了一堆文件,在切换到trunk时删除它们,然后在合并到trunk时再次创建它们.

有没有其他方法可以使用TortoiseSVN将分支合并到主干,这样可以提高效率,而不需要两个单独的工作副本?(在我们的场景中实际上效率不高,因为一些依赖项使用绝对路径,当我想从另一个工作副本编译时我需要手动更改它们)

svn tortoisesvn merge branch

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

为什么无法捕获MissingMethodException?

我在ClickOnce部署的应用程序中依赖于.NET 2.0 SP2(该ApplicationDeployment.CurrentDeployment.CheckForDetailedUpdate(false)方法仅适用于SP2).

我想检查应用启动期间SP2是否存在.我试图通过在调用仅SP2方法后捕获MissingMethodException来检测这一点.

    /// <summary>
    /// The SP2 bootstrapper does not allow HomeSite installation
    /// http://msdn.microsoft.com/en-us/vstudio/bb898654.aspx
    /// So we only advice the user to download .NET 2.0 SP2 manually.
    /// </summary>
    private void CheckDotNet2SP()
    {
        WaitHandle wh = new AutoResetEvent(true);
        try
        {
            wh.WaitOne(1); //this method is .NET 2.0 SP2 only
        }
        //NOTE: this catch does not catch the MissingMethodException
        catch (Exception) //change to catch(MissingMethodException) does not help
        {
            //report that .NET 2.0 SP2 is missing
        }
        finally …
Run Code Online (Sandbox Code Playgroud)

.net c# clr missingmethodexception .net-2.0

11
推荐指数
2
解决办法
2817
查看次数

从WinForms表单显示WPF窗口绝对安全吗?

我想从Windows窗体应用程序(.NET 3.5)中显示一个WPF窗口.

此代码似乎在示例项目中没有任何问题:

public partial class WinFormsForm1 : Form
{
    public WinFormsForm1() {
      InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e) {
      WpfWindow1 w = new WpfWindow1();
      w.Show();
    }
}
Run Code Online (Sandbox Code Playgroud)

表单从Main()正常的Winforms表单开始:

Application.Run(new WinFormsForm1());
Run Code Online (Sandbox Code Playgroud)

在我看来这太容易成为现实.这有什么缺点吗?这样做安全吗?

c# wpf interop .net-3.5 winforms

11
推荐指数
2
解决办法
4518
查看次数

WCF:(MTOM)有没有办法改变xop中使用的方案:WCF生成的内容引用uris?

http://tempuri/1/number处理流式MTOM请求时,WCF 用于Content-ID uri引用.

有没有办法如何强制WCF为xop使用不同的Content-ID引用:Include?

问题背景:

我正在为支持MTOM的jax ws java web服务构建一个.NET客户端,用于处理流式大数据上传.我手工制作了服务和数据联系人(WSDL生成的合同不正确,不允许流式传输).

问题是Web服务(jax ws)没有收到包含数据的请求主体.

它接收在标头中传输的数据.

我们为ws构建了一个java客户端 - 这个工作正常.

我在发出来自java和wcf的请求时捕获并比较了HTTP流量,唯一的区别在于在发布多部分数据时如何生成Content-ID引用:

  • WCF使用http://tempuri/1/...以编码值产生的Content-ID引用,例如href="cid:http%3A%2F%2Ftempuri.org%2F1%2F634019957020047928"

  • Java客户端使用"电子邮件式"uris,就像 href="cid:3f3ec388-8cd9-47aa-a603-fb1bc17935b8@example.jaxws.sun.com"

以下xop-includes中的这些产量(数据是soap体中唯一的元素)(XOP包含规范)


//WCF:
<Data>
   <xop:Include xmlns:xop="http://www.w3.org/2004/08/xop/include" href="cid:http%3A%2F%2Ftempuri.org%2F1%2F634019957020047928" />
</Data>

//JAVA:
<Data>
    <xop:Include xmlns:xop="http://www.w3.org/2004/08/xop/include" href="cid:3f3ec388-8cd9-47aa-a603-fb1bc17935b8@example.jaxws.sun.com"/>
</Data>
Run Code Online (Sandbox Code Playgroud)

稍后,在多部分数据中,内容由未编码的Content-ID引用:

--uuid:7e166bb7-042f-4ba3-b6ef-98fbbc21244b+id=1
Content-ID: <http://tempuri.org/1/634019957020047928>
Content-Transfer-Encoding: binary
Content-Type: application/octet-stream
Run Code Online (Sandbox Code Playgroud)

我想jax Web服务框架中可能存在一个错误,它无法识别WCF生成的+ urlencoded Content-ID uri引用.

有没有办法如何强制WCF为xop使用不同的Content-ID引用:Include?


编辑:我已发现其具有GenerateUriForMimePart方法XmlMtomWriter,这被用于生成内容的ID.

public static string GenerateUriForMimePart(int index)
{
    return string.Format(CultureInfo.InvariantCulture, 
"http://tempuri.org/{0}/{1}", new object[] { index, DateTime.Now.Ticks });
}
Run Code Online (Sandbox Code Playgroud)

似乎ID生成无论如何都是可以覆盖的.

这里描述了类似的问题,提供的答案没有帮助:http://social.msdn.microsoft.com/Forums/en/wcf/thread/f90affbd-f431-4602-a81d-cc66c049e351

wcf soap mtom jax-ws xop

10
推荐指数
1
解决办法
2899
查看次数