小编LSp*_*777的帖子

如何让IIS识别OWIN启动类?

我的OWIN Web服务在Visual Studio 2013中运行得很漂亮,但是当我将它发布到真正的IIS站点时,它就好像启动类中的Configuration方法还没有运行一样.我可以做"正常"的事情,比如浏览应用程序并查看目录结构,但是假设用IAppBuilder建立的任何东西都不起作用.例如,当我浏览到在Startup中设置的URL以发出OAuth2承载令牌时,我收到404.0错误.好像Startup.Configuration(IAppBuilder应用程序)从未运行过.

我正在使用该[assembly: OwinStartup(typeof(MyNamespacedStartupClass))]属性来指定启动类.

我已经使用NuGet按照我看过的说明同时获得了Microsoft.Owin.Host.SystemWeb和Microsoft.Owin.Diagnostics,但这并没有什么区别.

我还需要做什么?

c# iis owin

33
推荐指数
4
解决办法
3万
查看次数

System.Type参数上的ParameterOverride失败

我正在尝试使用ParameterOverrideUnity 2.0.只要我提供的参数不是System.Type,它就可以正常工作.

在下面的测试程序中,MyClass<T>当泛型参数T是int时,我使用整数参数注入构造函数,当T是System.Type时,我使用Type参数.在随后的输出中,您将看到它处理整数就好了,但似乎认为这typeof(MyClassForParam)是一个实际的MyClassForParam对象,而不是类型.有任何想法吗?

namespace UnityParameterOverride
{
    interface IMyClass
    {
    }

    public class MyClass<T> : IMyClass
    {
        public MyClass(T myParam)
        {
            Console.WriteLine("{0}", myParam);
        }
    }

    public class MyClassForParam
    {
        public MyClassForParam() { }
    }

    class Program
    {
        static void Main(string[] args)
        {
            IUnityContainer unity = new UnityContainer();
            try
            {
                // Works fine: prints 12345
                Console.WriteLine("Injecting an integer parameter.");
                unity.RegisterType<IMyClass, MyClass<int>>();
                unity.Resolve<IMyClass>(new ParameterOverride("myParam", 12345));

                // Fails: Seems to think that the parameter is an …
Run Code Online (Sandbox Code Playgroud)

.net c# dependency-injection unity-container

7
推荐指数
1
解决办法
1741
查看次数

标签 统计

c# ×2

.net ×1

dependency-injection ×1

iis ×1

owin ×1

unity-container ×1