2015-09-16 2 views
2

У меня есть приложение ASP.NET 5 (vNext), просто переходя от бета5 к бета-версии 7 и от dnx451 до dnx46, и я не могу заставить его работать. Мое другое приложение, работает только хорошо после миграции, я не вижу никакой разницы в том, что один, но я получаю все время следующей ошибки после его публикации:ASP.NET 5 Beta7 больше не работает на Azure WebSites

DirectoryNotFoundException: Could not find a part of the path 'D:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\Facades\System.Collections.Concurrent.dll'. 

System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) 


System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) 


System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share) 


Microsoft.AspNet.Mvc.Razor.Compilation.RoslynCompilationService.<>c__DisplayClass15_0.<CreateMetadataFileReference>b__0(String _) 


System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory) 


Microsoft.AspNet.Mvc.Razor.Compilation.RoslynCompilationService.CreateMetadataFileReference(String path) 

Я попытался несколько способов публикации, я создал новый свежий WebSite, еще один и тот же - единственный способ заставить его работать закомментировать следующий фрагмент в Startup.cs:

 app.UseMvc(routes => 
     { 
      //default 
      routes.MapRoute(
        name: "default", 
        template: "{controller=Home}/{action=Index}/{id?}" 
        ); 
      routes.MapRoute(
         name: "overrideRoute", 
         template: "{*url}", 
         defaults: new { action = "Index", controller = "Home" } 
        ); 
      //web api 
      routes.MapRoute(
        name: "apiRoute", 
        template: "api/{controller}/{action}/{bizObject}/{id?}" 
       ); 
     }); 

Без выше, я могу написать

  app.Run(async context => 
      { 
       context.Response.ContentType = "text/plain"; 
       await context.Response.WriteAsync("test"); 
      }); 

и он работает, но, очевидно, мне нужен MVC, а другое подобное приложение работает так, как ожидалось.

Любые подсказки?

+0

Похоже, что что-то ссылается на .NETFramework \ v4.6 \ Facades \ System.Collections.Concurrent.dll, которого нет. Проверьте свои рекомендации. – Dijkgraaf

ответ

2

Это известная проблема. Вы можете следить за этой ошибкой здесь https://github.com/projectkudu/kudu/issues/1675

В основном @Dijkgraaf является правильным. Отсутствует вся папка фасадов (.NETFramework\v4.6\Facades\), и вы ничего не можете сделать, чтобы исправить это. Azure должен добавить эту папку для сборки, ориентированной на 4.6. Если возможно, вы можете попытаться перейти на dnx451 и посмотреть, будет ли это работать для вас до тех пор, пока ошибка не будет решена. Если у вас есть жесткая зависимость от dnx46, то, к сожалению, вам просто нужно подождать.