Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>I haven't worked with GSOAP handler, but used ASP.NET ISAPI extention. I suppose basically it has the same level of integration. I will post the code for ASP.NET and I hope you won't have problem with changing it to GSOAP. I have a huge risk of changing something incorrectly and make the examples unusable for you, so I let you do it better.</p> <p>Here is my code to register extention itself if it isn't</p> <pre><code>&lt;Component Id="Iis6ConfigExtentions" Guid="{GuidHash({ProductId}-1822E4F3-5850-47D5-9281-D1E0E20C77D4)}" KeyPath="yes" Permanent="yes"&gt; &lt;Condition&gt;&lt;![CDATA[Installed OR (IISMAJORVERSION AND (IISMAJORVERSION = "#6"))]]&gt;&lt;/Condition&gt; &lt;iis:WebServiceExtension Id="ExtensionASP4" Group="ASP.NET v4.0.30319" Allow="yes" File="[FRAMEWORKROOT]v4.0.30319\aspnet_isapi.dll" Description="ASP.NET v4.0.30319"/&gt; &lt;/Component&gt; </code></pre> <p>and for adding those to the concrete site you need to use WebApplicationExtention, as @Yan already mentioned:</p> <pre><code>&lt;iis:WebApplication Id="IIS6WebApp" Name="[SITE_APP_NAME]" WebAppPool="AppPool" &gt; &lt;iis:WebApplicationExtension Verbs="GET,HEAD,POST" CheckPath="no" Script="yes" Executable="[FRAMEWORKROOT]v4.0.30319\aspnet_isapi.dll" /&gt; &lt;/iis:WebApplication&gt; </code></pre> <p>The <code>CheckPath="no"</code> is required on IIS 6 because we use ASP.NET MVC which doesn't map urls to files on disk. You might need it too since service address probably doesn't map to physical file.</p> <p><strong>UPDATE:</strong></p> <p>Looks like it is really not possible to do it directly in WIX (at least in 3.5 version). You are going in right direction - custom action using appcmd. But the provided custom actions aren't complete or what you need: the first one just sets property value to the command you need to execute and the second one calls some Dll custom action which wasn't provided.</p> <p>What I'd try to execute is:</p> <pre><code>&lt;CustomAction Id="AddGsoapHandler" Directory="TARGETDIR" Impersonate="no" Execute="deferred" Return="check" ExeCommand="[SystemFolder]inetsrv\appcmd.exe set config -section:system.webServer/handlers /+&amp;quot;[\[]name='GSOAP',path='*.dll', verb='*',modules='IsapiModule',scriptProcessor='[BIN]mod_gsoap.dll',resourceType='File', requireAccess='Execute'[\]]&amp;quot; /commit:apphost" /&gt; </code></pre> <p>Please pay attention to the <strong>path</strong> attribute of your handler configuration. <strong>It will limit handler usage to only URL's which ends with ".dll"</strong> - I just copied it from your code but not sure if you've done it intentionally or just copied from <a href="http://technet.microsoft.com/en-us/library/cc753249%28v=ws.10%29.aspx" rel="nofollow">example</a> at Microsoft site. That might have led to 401 error even if handler is registered successfully.</p> <p>Also I added the <code>/commit:apphost</code> argument. Not sure if you really need this, but I use it to explicitly specify that I need to configure my application's config.</p> <p><strong>UPDATE 2:</strong></p> <p>If you need to set configuration to only single application, you should specify application object as argument of appcmd instead of the 'config' which means global configuration. Please try this:</p> <pre><code>&lt;CustomAction Id="AddGsoapHandler" Directory="TARGETDIR" Impersonate="no" Execute="deferred" Return="check" ExeCommand="[SystemFolder]inetsrv\appcmd.exe set app "MySite/app1" -section:system.webServer/handlers /+&amp;quot;[\[]name='GSOAP',path='*.dll', verb='*',modules='IsapiModule',scriptProcessor='[BIN]mod_gsoap.dll',resourceType='File', requireAccess='Execute'[\]]&amp;quot; /commit:apphost" /&gt; </code></pre> <p>For more details you can read <a href="http://www.iis.net/learn/get-started/getting-started-with-iis/getting-started-with-appcmdexe" rel="nofollow">this tutorial</a>. </p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload