3

I'm considering publishing an an ASP.NET MVC 3 app under a SharePoint 2010 application on IIS (not inside SharePoint as a SPSite or whatnot, just a regular IIS application for SSO-integration w. SP).

The MVC app would then only inherit some configs. It has no reference to SharePoint and SharePoint does not have any reference to it other than it being an sub application under the SharePoint 2010 app in IIS.

3-fold question:

  • Is it possible?
  • Are there any obvious issues with SharePoint 2010 running on 3.5, and my new app running on 4.0 for instance? Sufficient to use different app-pools?
  • I'm concerned about the inheritance of web.configs between my MVC app to SharePoint's
web.config. Are there any issues regarding web.config inheritance between these two?
John Korsnes
  • 2,277
  • 2
  • 20
  • 31
  • Yes. It is possible. As long as your development is confined to frameworks SP2010 is using, you should be fine. .NET 4 is compatible with 3.5 and I see no issues. – sajoshi May 31 '11 at 09:23
  • In this case, I'm talking about an ASP.NET MVC 3 app. Would there be any web.config inheritance issues? – John Korsnes Jun 24 '11 at 07:36

3 Answers3

5

UPDATE (February 27, 2013): We no longer need to use <location> XML element to stop inheritance from SharePoint to the ASP.Net MVC 3 application. We need to give FullTrust to the ASP.Net application using the <trust level="Full" originUrl="" /> XML element in the Web.Config.

Some HTTP Modules / HTTP Handlers need to be disabled from the ASP.Net MVC 3 application.

For the SharePoint 2010 scenario, I also had to move the <sectionGroup name="system.web.extensions"> XML element from the SharePoint 2010 web.config file to C:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG\web.config file because it conflicted with .NET 4.0. If you move it there, it will still be inherited by SharePoint web.config.

Anyway, I won't repeat all steps here. Please see my blog post:

MVC 3 with SharePoint Server 2010:

http://samsonfr.wordpress.com/2013/02/26/recette-amliore-intgrer-une-application-asp-net-mvc-3-sous-un-site-web-iis-hbergeant-sharepoint-server-2010/

MVC 3 with WSS 3.0:

http://samsonfr.wordpress.com/2013/02/26/recette-amliore-intgrer-une-application-asp-net-mvc-sous-un-site-web-iis-hbergeant-wss-3-0-sharepoint-2007/

It's in french but I guess you can use Google translate.

Best regards,

  • Translating the page made this a little difficult, and I hit a few snags, but the blog mentioned above was right on point (thanks Frederick!). I recently wrote this, incase anyone encounters similar issues I had: http://www.ericjamesw.com/2012/12/adding-aspnet-40-application-to.html – ewitkows Dec 03 '12 at 19:39
  • A bit old, but this was what we ended up doing as well. Don't remember if it was the machine.config or the web.config for .NET 2.0 on the production server we edited because of system.web.extensions, but you're probably right with web.config. – John Korsnes Mar 19 '13 at 14:16
0

I have tried and failed. Currently having to host the .Net 4 app on a seperate IP, which creates all kinds of cross scripting/security issues. I found some tips here: http://www.asp.net/learn/whitepapers/aspnet4/breaking-changes but couldn't get it working.

  • By the way, this describes the error you'll get http://www.britishdeveloper.co.uk/2010/03/there-is-duplicate-systemwebextensionss.html – Mike Cocroft Jun 28 '11 at 16:25
0

If your application will run only under Virtual folder (so it will have access to SPContext if it needs to) an not an actually under Application folder (hence not being integrated into Sharepoint at all) then I guess Asp.net MVC 3 is out of the question because of its .net 4 relation.

But. Asp.net MVC 2 is definitelly possible. I'm developing such an app and it works as expected. It took me a while to integrate it though... My integration makes it possible to only change root Sharepoint's site web.config (only add new things to it, nothing's been taken out or changed). I haven't changes even the Global.asax for routing definition.

My application is running as a virtual folder under Sharepoint Foundation 2010 Site and has access to SPContext and is also security controlled by Sharepoint (authentication is performed by the SP 2010 Site). So that's definitely possible.

But it has to be Asp.net MVC 2 since it runs on .net 3.5, the same as as Sharepoint 2010.

Robert Koritnik
  • 103,639
  • 52
  • 277
  • 404