csharpfritz / csharpfritz/WebFormsTest

Issue with AreaRegistration in Global.asax

Aperta
#25 6 commenti 0 reazioni 0 assegnatari Vedi su GitHub
enhancement help wanted Low Priority
Lingua principale
JavaScript
Stelle
26
Fork
14
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

Are areas supported?

This line:

```
AreaRegistration.RegisterAllAreas();
```

in

```
protected void Application_Start(object sender, EventArgs e
```

of

```
global.asax.cs
```

results in the error below (slightly munged).

The test is

```
[TestMethod]
public void CanIgetMasterPage()
{
var sut = WebApplicationProxy.GetPageByLocation("~/MasterPages/Main.Master") as Main;

Assert.IsNotNull(sut);

}
```

and the base test class is

namespace xxx.yyy.WebFormsTestSpike
{

```
public class WebFormsTestBase
{

protected readonly MockRepository _mockery;
protected readonly Mock contextMock;
protected readonly Mock responseMock;
protected readonly Mock requestMock;

public WebFormsTestBase()
{

_mockery = new MockRepository(MockBehavior.Loose);

contextMock = _mockery.Create();

responseMock = _mockery.Create();
contextMock.SetupGet(c => c.Response).Returns(responseMock.Object);
contextMock.SetupGet(c => c.IsDebuggingEnabled).Returns(true);

requestMock = _mockery.Create();
contextMock.SetupGet(c => c.Request).Returns(requestMock.Object);

InitializeWebApplicationProxy();
}

private void InitializeWebApplicationProxy()
{
Uri codeBase = new Uri(GetType().Assembly.CodeBase);
var currentFolder = new DirectoryInfo(Path.GetDirectoryName(codeBase.LocalPath));
var webFolder = currentFolder.Parent.Parent.Parent.GetDirectories("xxx.yyy.Web")[0];

WebApplicationProxy.Create(webFolder.FullName, true);
}
}
```

}

System.InvalidOperationException was unhandled by user code
HResult=-2146233079
Message=This method cannot be called during the application's pre-start initialization phase.
Source=System.Web
StackTrace:
at System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled()
at System.Web.Compilation.BuildManager.GetReferencedAssemblies()
at System.Web.Mvc.BuildManagerWrapper.System.Web.Mvc.IBuildManager.GetReferencedAssemblies()
at System.Web.Mvc.TypeCacheUtil.FilterTypesInAssemblies(IBuildManager buildManager, Predicate`1 predicate)
at System.Web.Mvc.TypeCacheUtil.GetFilteredTypesFromAssemblies(String cacheName, Predicate`1 predicate, IBuildManager buildManager)
at System.Web.Mvc.AreaRegistration.RegisterAllAreas(RouteCollection routes, IBuildManager buildManager, Object state)
at System.Web.Mvc.AreaRegistration.RegisterAllAreas(Object state)
at System.Web.Mvc.AreaRegistration.RegisterAllAreas()
at xxx.yyy.Web.Global.Application_Start(Object sender, EventArgs e) in C:\zzz\Repos\MarketOnce2\Products\xxx\yyy\xxx.yyy.Web\Global.asax.cs:line 117
InnerException:

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.