Error: HttpException (0x80004005): 
Retrieving the COM class factory for component with CLSID {000209FF-0000-0000-C000-000000000046} failed 

Case: Automation of word document in ASP.Net works fine when in debug mode but when published, generates COM Class error.

1. in your web.config
 <identity impersonate="true" userName="allowedUserName.domain" password="thePassword"></identity>

2. in dcomcnfg
Component Service -> My computer -> DCOM Config

find MSWord Process, then set 
Security -> Launch And Activation Permissions, etc as "Customize".  Add user "allowedUserName.domain" with the following permissions: local launch = allow, local activation = allow

1. create a hyperlink in your web page
<asp:HyperLink ID="hyperLinkDownloadFile" runat="server">Download this file</asp:HyperLink>

2. in your code-behind
hyperLinkFileGen.Text = "click on this link to download the document";
hyperLinkFileGen.NavigateUrl = "downloadpage.aspx?file=yourDocument.ext";

3. create downloadpage.aspx
using System.IO;
  public partial class downloadpage: System.Web.UI.Page
        protected void Page_Load(object sender, EventArgs e)
            string filename = Request["file"].ToString();

        private void fileDownload(string filename)
            System.IO.FileInfo theFile= new System.IO.FileInfo(fileName);
            if (file.Exists) {
                   Response.AddHeader("Content-Disposition", "attachment; filename=" + theFile.Name);
                   Response.AddHeader("Content-Length", theFile.Length.ToString());
                   Response.ContentType = "application/octet-stream";
            } else { Response.Write("This file does not exist."); }

Ajax's update panel provides an easy way of doing this. Just group your radio buttons (those that need to be enabled/disabled) inside one update panel such that (in your .aspx code):

 <asp:UpdatePanel ID="GroupUpdateTheseRadioButtons" runat="server" UpdateMode="Always">
                                              <td><asp:RadioButton ID="rbtn1" autopostback="false" runat="server" Text="bla bla bla1" GroupName="SendTo" CssClass="radiobtn"/></td>                                              
                                              <td><asp:RadioButton ID="rbtn2" autopostback="false"  runat="server" Text="bla bla bla2" GroupName="SendTo" CssClass="radiobtn"/></td>

then your triggering control:


                                             <td align="left"><asp:RadioButton ID="rbtnTRIGGER" autopostback="true" runat="server" Text="disableEnable" GroupName="TRIGGERGROUP" CssClass="radiobtn" Checked="True" oncheckedchanged="rbtnTRIGGER_CheckedChanged"/></td>


Then in your code behind (.aspx.cs)
  protected void rbtnTRIGGER_CheckedChanged(object sender, EventArgs e)

            if (rbtnTRIGGER.Checked)

add the following snippet on your css style sheet:

.radiobtn, input[type="radio"]
on your asp page, just do:
<asp:RadioButton ID="rbtnID" runat="server" Text="Option 1" GroupName="rbtnGroup" CssClass="radiobtn"/>

table-tr, ul-li, dl-dt may be used to perfectly align your radio button lists (i don't have any preference). Others suggest dl-dt is the best way to go.. i use table-tr for special cases.

    About the Author

    The author have 12+ years experience in IT Industry with varying job roles from system developer/analyst/consultant positions. Majority of her development, implementation and systems support background focus on Financial/Banking/Credit Solutions.


    November 2010
    October 2010



    RSS Feed