Link to home
Start Free TrialLog in
Avatar of MichaelDavidCarr
MichaelDavidCarr

asked on

It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level.

Hello Experts,

First, thank you for your time.

For testing purposes, within IIS I have created a local website called TestPublishing.  After configuring this new site, with what I think are correct settings, I tested the site.  I created an index.html file and placed it into the virtual directory.  The contents of the index.html file is:
<doctype />
<html>
<body>
    <h1>Test Publishing</h1>
</body>
</html>

Open in new window


I then went to the browser and typed in this url:  
http://localhost:84/TestPublishing/
And sure enough my index.html file is loaded and served up and Test Publishing is shown.  Yay!

Then, from Visual Studio when I publish an application to this url I get the following error:
It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level.  This error can be caused by a virtual directory not being configured as an application in IIS.

What do I need to give to you, in order for you to help me solve this (the steps I took to configure the site, the folder hierarchy, etc)?

Again, thank you for your time,
Michael Carr
Avatar of Carl Tawn
Carl Tawn
Flag of United Kingdom of Great Britain and Northern Ireland image

Work through the details in this link to make sure your site is set up as an application, rather than as a static website:

http://www.iis.net/configreference/system.applicationhost/sites/site/application
Avatar of MichaelDavidCarr
MichaelDavidCarr

ASKER

Thank you Carl,

I followed the instructions in the link you provided.  Now I am getting a different error:
Cannot add duplicate collection entry of type 'add' with unique key attribute 'name' set to 'DomainServiceModule'.  Attached is the web.config file.

Thank you.
web.config
Try removing this line:
      <add name="DomainServiceModule" preCondition="managedHandler" type="System.ServiceModel.DomainServices.Hosting.DomainServiceHttpModule, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />

Open in new window

From the <modules> element of your config file.
Thank you Carl,

I removed the DomainServiceModule line from web.confing and then it barked about the line just after that one the LightSwitchModule.  So I removed that one as well.  It continued to bark.  I then put the two lines back in and added <clear /> just above them.  That didn't work either.

The strange thing is I already have two other LightSwitch websites up and running on my local machine and I didn't run into this problem before.  Is there a way a tool that would allow me to compare iis website settings?

Thank you again.
It sounds more like an issue with your config rather than with the IIS setup itself. As long as the websites root folder is configured as an application then the rest should be down to the apps config itself.
Are all of these sites you have configured separately? You don't have more than one site published as sub directories of the same root site or anything like that?
All of the sites are separate.  None of them are sub directories of the other ones.
Can you post a screen shot of the website settings page in IIS? I'd also compare the config file of this site with one of the ones that does work - paying special attention the the handlers sections.
Hopefully this is what you asked for.  Now I will manually compare the web.config files.  I suspect though that the difference will be found in an iis configuration setting.
iis.png
The two sites that work both have a virtual directory setting and neither of them have an Application defined.  But the site that doesn't work has an Application set but doesn't have a virtual directory setting.  Could this be the problem?  According to the documentation found in your article:  http://www.iis.net/configreference/system.applicationhost/sites/site/application it says to create an Application and doesn't say to create a virtual directory.  I am confused.
You don't technically need a virtual directory if you're not using an application, and if you site physically sits under the root folder of IIS (i.e. somewhere under the c:\inetpub\wwwroot directory).

I'd remove the application firstly then and see what effect that has.
ASKER CERTIFIED SOLUTION
Avatar of Carl Tawn
Carl Tawn
Flag of United Kingdom of Great Britain and Northern Ireland image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
That was it!  Thank you very much Carl.