Orchard Publishing SNAFU

Tags: Orchard CMS, webmatrix

I recently spent several hours over the course of a couple of days trying to figure out why my first Orchard deployment was failing.

To create an Orchard CMS site, I downloaded and installed WebMatrix, a free web development tool designed to aid anyone in creating a website (painlessly, in just a couple of minutes).

Upon startng WebMatrix, the four options shown below are available. Orchard CMS was one of 120 website frameworks that were available from the Web Gallery when I selected the "Site From Web Gallery" option.

 

Opening Screen in WebMatrix

 

Web Gallery offerings for website templates/frameworks

After pressing "Next" and following the directions, I quickly had the shell of the new FoxWiz Solutions site installed and was ready to start trying to learn how to actually create some viable content.

As I stated in another blog , it took me several hours before I started to really "get Orchard", but once I did, I was able to enable and configure modules for the basic site pages & navigation and to implement a significant amount of the core functionality that I felt I would need for the site. Of course, I did some experimenting, started to sift through some source code, and began to get a feel for what Orchard was all about under the hood. Additionally, I played with Themes and "rewound the tape" with respect to CSS. This allowed me to modify an existing theme (from continuum - rich media lab) to meet my needs with respect to "look and feel".

Finally, I was ready to publish the Orchard site to see how it reacted in the real world. I came across a great video that I recommend you watch if you have questions about publishing the site. It's comprehensive and easy to follow. Everything works perfectly for the presenter and he shows how absolutely simple deployment is.

Unless you're me....

I followed along with the presenter and did everything he did (even to the extent that I selected the same hosting company for my deployment). Since then, I've opted to go with Awesome.net who are also one of the three options in his demo. It's been a long time since I have been as impressed by any company as I was with the support staff of this hosting company. Despite the fact that I was taking advantage of their free cloud offering to test a beta product, they bent over backwards to provide some of the most incredible customer service ever. I can't recommend them any higher...but, I digress.

At the point in the presentation where the speaker is wrapping up and basically saying, "Now wasn't that a piece of cake?" I was staring at the stack trace below wondering why nothing ever goes as planned.


Unable to publish. Unable to invoke or execute Web Deploy provider: iisApp. The provider is not enabled or was unable to execute commands on the server. Contact your server administrator for assistance.
Error detail:
(5/19/2011 8:17:17 PM) An error occurred when the request was processed on the remote computer.
   at Microsoft.Web.Deployment.StatusThreadHandler.CheckForException()
   at Microsoft.Web.Deployment.PackageSerializer.CheckForErrorOrCancel()
   at Microsoft.Web.Deployment.PackageSerializer.SerializeSingleObject(DeploymentObject obj, Int32 parentId)
   at Microsoft.Web.Deployment.PackageSerializer.SerializeChildrenDepthFirst(SerializeObjectContext objectContext)
   at Microsoft.Web.Deployment.PackageSerializer.SerializeChildren(SerializeObjectContext objectContext)
   at Microsoft.Web.Deployment.PackageSerializer.SerializeChildrenDepthFirst(SerializeObjectContext objectContext)
   at Microsoft.Web.Deployment.PackageSerializer.SerializeChildren(SerializeObjectContext objectContext)
   at Microsoft.Web.Deployment.PackageSerializer.SerializeChildrenDepthFirst(SerializeObjectContext objectContext)
   at Microsoft.Web.Deployment.PackageSerializer.SerializeChildren(SerializeObjectContext objectContext)
   at Microsoft.Web.Deployment.PackageSerializer.SerializeChildrenDepthFirst(SerializeObjectContext objectContext)
   at Microsoft.Web.Deployment.PackageSerializer.SerializeChildren(SerializeObjectContext objectContext)
   at Microsoft.Web.Deployment.PackageSerializer.SerializeChildrenSyncFirst(SerializeObjectContext objectContext)
   at Microsoft.Web.Deployment.PackageSerializer.SerializeChildren(SerializeObjectContext objectContext)
   at Microsoft.Web.Deployment.PackageSerializer.SerializeChildrenSyncFirst(SerializeObjectContext objectContext)
   at Microsoft.Web.Deployment.PackageSerializer.SerializeChildren(SerializeObjectContext objectContext)
   at Microsoft.Web.Deployment.PackageSerializer.SerializeChildrenSyncFirst(SerializeObjectContext objectContext)
   at Microsoft.Web.Deployment.PackageSerializer.SerializeChildren(SerializeObjectContext objectContext)
   at Microsoft.Web.Deployment.PackageSerializer.Serialize(DeploymentObject obj)
   at Microsoft.Web.Deployment.AgentClientProvider.RemoteDestSync(DeploymentObject sourceObject, DeploymentSyncContext syncContext)
   at Microsoft.Web.Deployment.DeploymentObject.SyncToInternal(DeploymentObject destObject, DeploymentSyncOptions syncOptions, PayloadTable payloadTable, ContentRootTable contentRootTable)
   at Microsoft.Web.Deployment.DeploymentObject.SyncTo(DeploymentProviderOptions providerOptions, DeploymentBaseOptions baseOptions, DeploymentSyncOptions syncOptions)
   at Microsoft.Web.Deployment.DeploymentObject.SyncTo(String provider, String path, DeploymentBaseOptions baseOptions, DeploymentSyncOptions syncOptions)
   at Microsoft.Web.Deployment.DeploymentObject.SyncTo(DeploymentWellKnownProvider provider, String path, DeploymentBaseOptions baseOptions, DeploymentSyncOptions syncOptions)
   at Microsoft.WebMatrix.Deployment.MsDeployWorker.Execute(Boolean pullback)
Attempted to perform an unauthorized operation. iisApp http://go.microsoft.com/fwlink/?LinkId=178034

In addition to the stack trace that was served when I attempted to publish, there was another symptom that raised it's head. I can't display that error here because I've already resolved the issue but, I can describe it.

During the video, the presenter describes how to use WebMatrix to add a connection string to the site configuration file (web.config). He also walks us through how to change the connection information in the website settings so that the remote, hosted SQL Server database can be created during the deployment. Well, when I completed loading the publishing settings from the file that is obtained from the hosting company (see video), instead of just a single database connection, my deployment settings displayed two databases; one for the local database and one for the remote database. The only way to resolve that issue was to comment out the connection string in the configuration file. When I did that, my screen looked like his screen.

I contacted the support team at Awesome.net and they immediately got involved in trying to resolve the issue. Towards this end, they attempted (successfully) to deploy an Orchard site using the settings that I'd retrieved from them when I defined the hosted site. To me, this pointed to a versioning issue. I suspected that, perhaps, I didn't have the correct version of WebMatrix (despite the fact that I'd just downloaded it from Microsoft). The version I had was "1"; no minor version, no build number. Just plain "1". From what I could determine this was the latest and greatest (and only) version.

When I looked at Orchard, I found, though, that there was a more current version. I was running version 1.0 but the current version was 1.1.30. Why WebMatrix installed an older version than the most current is a mystery to me and hopefully, that will be resolved in the future. In defense of the Orchard team, the dashboard does alert the user about the version currency, but I obviously didn't pay attention to it. As soon as I followed the instructions on how to facilitate the upgrade, my issue was resolved and my deployment was as painless as that in the video.

Orchard CMS version information from the Dashboard

Hope this helps someone!

~D

 

 

Add a Comment