The most typical, and most robust, deployment of the EntityServer is with Internet Information Services (IIS). Unfortunately, even here, issues may arise from time to time.
If the EntityServer will not start in IIS on Windows 8 -
Ensure that IIS is installed and will serve dynamic content:
Also ensure that HTTP Activation is enabled for WCF Services:
When you deploy your application to the web server - where DevForce will not be installed - you'll want all required assemblies to be in the bin subfolder. It's easier to see which assemblies you'll need to deploy if they're in your bin folder during testing.
If you navigate to the service page and an assembly is missing, you'll see a compilation error explaining the problem.
You may need to modify several ASP.NET runtime settings to control the execution timeout and maximum request size.
The default execution timeout is 110 seconds. If your application experiences operation timeouts you can modify the executionTimeout setting. The value is specified in seconds.
The default maximum request size is 4MB. If your client application sends large data packets to the server, for example if saving many entities or very large entities, increase the maxRequestLength value. The value is specified in kilobytes.
Here's a sample httpRuntime element with both settings modified from their defaults:
XML | <system.web> <httpRuntime maxRequestLength="8192" executionTimeout="130" /> </system.web> |
When you created your project an httpRuntime element was added to target .NET 4.5. You should not remove this setting, as without it .NET defaults to "4.0" and quirks mode, which will likely cause your application to fail.
XML | <system.web> <httpRuntime targetFramework="4.5" /> </system.web> |
You may be using web.config transforms when deploying the EntityServer to IIS. You can use transforms with the ideablade.configuration section elements and attributes too. The default web.config added to your web project contained an ideablade.configuration section which opened with the following:
XML | <ideablade.configuration version="6.00" xmlns="http://schemas.ideablade.com/2010/IdeaBladeConfig"> ... |
The namespace is primarily used to provide Intellisense support when editing the file within Visual Studio, but it does complicate transforms and XPath expressions. Unless you're an XPath expert, the quickest way to get your transforms working is to include the namespace in the transform file. For example, the following transform will replace the logging attributes:
XML | <configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> <ideablade.configuration version="6.00" xmlns="http://schemas.ideablade.com/2010/IdeaBladeConfig"> <logging logFile="log\DebugLog.xml" shouldLogSqlQueries="true" xdt:Transform="Replace" /> </ideablade.configuration> </configuration> |
Alternately, you can remove the namespace attribute from the ideablade.configuration element in your web.config file, but you'll lose Intellisense support.