Skip to content
Demis Bellot edited this page Apr 9, 2014 · 1 revision

VS.NET Intelli-sense for self-hosting projects

VS.NET Intelli-sense relies on the Web.config that VS.NET looks for in the root directory of your host projects. As self-hosting projects are Console Applications they instead use App.config instead which is all ServiceStack looks at for configuring Razor.

Unfortunately as VS.NET's Razor intelli-sense is coupled to ASP.NET MVC, it requires a dummy Web.config in your self-hosted projects which just contains a copy of the Razor configuration in your App.config (which was originally populated when adding the ServiceStack.Razor NuGet Package to your project). The Web.config is otherwise benign and has no other effect other than enabling VS.NET's intelli-sense.

Intelli-sense for View Models

The @model T attribute isn't known to VS.NET intelli-sense when self-hosting which means you need to its more verbose alias:

@inherits ViewPage<T>

Missing Razor configuration

The razor Web.config sections added by ServiceStack.Razor normally use the version of ASP.NET WebPages that's installed on your computer included with VS.NET installation and updates and is normally located under:

C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\

This holds the different version of ASP.NET Web pages installed, e.g:

v1.0\
v2.0\

If this is missing, another option for installing ASP.NET WebPages is via NuGet, i.e:

PM> Install-Package Microsoft.AspNet.WebPages -Version 1.0.20105.408

If you instead installed the latest version of WebPages (currently at v3.1.1), e.g:

PM> Install-Package Microsoft.AspNet.WebPages

You would need to change the version number in the Razor Web.config to reference Version=3.0.0.0.

Only configuration section used

ServiceStack doesn't use the ASP.NET WebPages implementation itself, the configuration is primarily included to enable VS.NET intelli-sense and provide a way to configure the default namespaces added to Razor pages.

This can also be done in code by adding to the Config.RazorNamespaces collection, but adding them to the config section lets VS.NET knows about them so you can get proper intelli-sense.



  1. Getting Started
    1. Create your first webservice
    2. Your first webservice explained
    3. ServiceStack's new API Design
    4. Designing a REST-ful service with ServiceStack
    5. Example Projects Overview
  2. Reference
    1. Order of Operations
    2. The IoC container
    3. Metadata page
    4. Rest, SOAP & default endpoints
    5. SOAP support
    6. Routing
    7. Service return types
    8. Customize HTTP Responses
    9. Plugins
    10. Validation
    11. Error Handling
    12. Security
    13. Debugging
  3. Clients
    1. Overview
    2. C# client
    3. Silverlight client
    4. JavaScript client
    5. Dart Client
    6. MQ Clients
  4. Formats
    1. Overview
    2. JSON/JSV and XML
    3. ServiceStack's new HTML5 Report Format
    4. ServiceStack's new CSV Format
    5. MessagePack Format
    6. ProtoBuf Format
  5. View Engines 4. Razor & Markdown Razor
    1. Markdown Razor
  6. Hosts
    1. IIS
    2. Self-hosting
    3. Messaging
    4. Mono
  7. Security
    1. Authentication/authorization
    2. Sessions
    3. Restricting Services
  8. Advanced
    1. Configuration options
    2. Access HTTP specific features in services
    3. Logging
    4. Serialization/deserialization
    5. Request/response filters
    6. Filter attributes
    7. Concurrency Model
    8. Built-in caching options
    9. Built-in profiling
    10. Form Hijacking Prevention
    11. Auto-Mapping
    12. HTTP Utils
    13. Virtual File System
    14. Config API
    15. Physical Project Structure
    16. Modularizing Services
    17. MVC Integration
  9. Plugins 3. Request logger 4. Swagger API
  10. Tests
    1. Testing
    2. HowTo write unit/integration tests
  11. Other Languages
    1. FSharp
    2. VB.NET
  12. Use Cases
    1. Single Page Apps
    2. Azure
    3. Logging
    4. Bundling and Minification
    5. NHibernate
  13. Performance
    1. Real world performance
  14. How To
    1. Sending stream to ServiceStack
    2. Setting UserAgent in ServiceStack JsonServiceClient
    3. ServiceStack adding to allowed file extensions
    4. Default web service page how to
  15. Future
    1. Roadmap

Clone this wiki locally