csharpfritz / csharpfritz/WebFormsTest
Issue with AreaRegistration in Global.asax
- Vorherrschende Sprache
- JavaScript
- Sterne
- 26
- Forks
- 14
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
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:
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Start in global.asax.cs at Global.Application_Start, where AreaRegistration.RegisterAllAreas() raises the exception. Read the CanIgetMasterPage test and WebFormsTestBase.InitializeWebApplicationProxy setup, then run the test to reproduce the failure. Done means establishing whether area registration is supported by this harness and resolving or clearly documenting the observed behavior.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- csharp
- Bereich
- backend, testing
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 25/100