diff --git a/src/Orchard.Specs/Bindings/WebAppHosting.cs b/src/Orchard.Specs/Bindings/WebAppHosting.cs
index 66e848aea..3d98e163e 100644
--- a/src/Orchard.Specs/Bindings/WebAppHosting.cs
+++ b/src/Orchard.Specs/Bindings/WebAppHosting.cs
@@ -14,10 +14,10 @@ using HtmlAgilityPack;
using log4net.Appender;
using log4net.Core;
using log4net.Repository;
+using NUnit.Framework;
using Orchard.Specs.Hosting;
using Orchard.Specs.Util;
using TechTalk.SpecFlow;
-using NUnit.Framework;
namespace Orchard.Specs.Bindings {
[Binding]
@@ -27,6 +27,9 @@ namespace Orchard.Specs.Bindings {
private HtmlDocument _doc;
private MessageSink _messages;
+ public WebAppHosting() {
+ }
+
public WebHost Host {
get { return _webHost; }
}
@@ -36,6 +39,14 @@ namespace Orchard.Specs.Bindings {
set { _details = value; }
}
+ [AfterScenario]
+ public void AfterScenario() {
+ if (_webHost != null) {
+ _webHost.Dispose();
+ _webHost = null;
+ }
+ }
+
[Given(@"I have a clean site")]
public void GivenIHaveACleanSite() {
GivenIHaveACleanSiteBasedOn("Orchard.Web");
diff --git a/src/Orchard.Specs/Hosting/WebHost.cs b/src/Orchard.Specs/Hosting/WebHost.cs
index d19119483..0ddb11405 100644
--- a/src/Orchard.Specs/Hosting/WebHost.cs
+++ b/src/Orchard.Specs/Hosting/WebHost.cs
@@ -44,6 +44,13 @@ namespace Orchard.Specs.Hosting {
}
+ public void Dispose() {
+ if (_webHostAgent != null) {
+ _webHostAgent.Shutdown();
+ _webHostAgent = null;
+ }
+ }
+
public void CopyExtension(string extensionFolder, string extensionName) {
var sourceModule = _orchardWebPath.Combine(extensionFolder).Combine(extensionName);
var targetModule = _tempSite.Combine(extensionFolder).Combine(extensionName);
@@ -73,6 +80,5 @@ namespace Orchard.Specs.Hosting {
fieldInfo.SetValue(to, value);
}
}
-
}
}
\ No newline at end of file
diff --git a/src/Orchard.Specs/Hosting/WebHostAgent.cs b/src/Orchard.Specs/Hosting/WebHostAgent.cs
index e7cb96889..fbff0ebb7 100644
--- a/src/Orchard.Specs/Hosting/WebHostAgent.cs
+++ b/src/Orchard.Specs/Hosting/WebHostAgent.cs
@@ -1,4 +1,5 @@
using System;
+using System.Web.Hosting;
namespace Orchard.Specs.Hosting {
public class WebHostAgent : MarshalByRefObject
@@ -8,5 +9,9 @@ namespace Orchard.Specs.Hosting {
shuttle.Delegate();
return shuttle;
}
+
+ public void Shutdown() {
+ HostingEnvironment.InitiateShutdown();
+ }
}
-}
\ No newline at end of file
+}
diff --git a/src/Orchard.Specs/Orchard.Specs.csproj b/src/Orchard.Specs/Orchard.Specs.csproj
index 82880b9a0..4ca4f89c1 100644
--- a/src/Orchard.Specs/Orchard.Specs.csproj
+++ b/src/Orchard.Specs/Orchard.Specs.csproj
@@ -284,9 +284,6 @@
Orchard
-
-
-
Always
diff --git a/src/Tools/Orchard/ApplicationObject.cs b/src/Tools/Orchard/ApplicationObject.cs
new file mode 100644
index 000000000..d1755945c
--- /dev/null
+++ b/src/Tools/Orchard/ApplicationObject.cs
@@ -0,0 +1,11 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace Orchard {
+ public class ApplicationObject {
+ public string ApplicationId { get; set; }
+ public object ObjectInstance { get; set; }
+ }
+}
diff --git a/src/Tools/Orchard/Host/CommandHost.cs b/src/Tools/Orchard/Host/CommandHost.cs
index 5d3268db4..1620ffe7a 100644
--- a/src/Tools/Orchard/Host/CommandHost.cs
+++ b/src/Tools/Orchard/Host/CommandHost.cs
@@ -18,7 +18,7 @@ namespace Orchard.Host {
}
public void Stop(bool immediate) {
- //TODO
+ HostingEnvironment.UnregisterObject(this);
}
public int RunCommand(TextReader input, TextWriter output, Logger logger, OrchardParameters args) {
diff --git a/src/Tools/Orchard/Orchard.csproj b/src/Tools/Orchard/Orchard.csproj
index bac38fb5e..996d70600 100644
--- a/src/Tools/Orchard/Orchard.csproj
+++ b/src/Tools/Orchard/Orchard.csproj
@@ -71,6 +71,7 @@
+
@@ -104,7 +105,9 @@
-
+
+ Designer
+