我的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,但这并没有什么区别.
我还需要做什么?
我正在尝试使用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)