Classes must be public, concrete, have a public default constructor, and meet all other ComVisibility requirements所以不能注册COM+服务,请教原因代码如下:using System;
using System.IO;
using System.EnterpriseServices;
using System.Runtime.InteropServices;
using System.Data;
using System.Text;
using System.Reflection;namespace TheColorCity.TransactionBlog
{
     //DEFINED A INTERFACE
public interface ITranBlog
{
void AddBlog(string BlogName,string BlogUserId,string BlogDirectory,int BlogStyle,int BlogVisiblity);

} [ ProgId( "BlogCOMplusService" ) ]
[ Description( "COM+ Blog Transaction" ) ]
[ Transaction( TransactionOption.Required ) ]
[ ObjectPooling( MinPoolSize = 5, MaxPoolSize = 10, CreationTimeout = 20 ) ]
[ MustRunInClientContext( false ) ]
[ JustInTimeActivation( true ) ]
[ ConstructionEnabled( Enabled=false) ]
[ Synchronization( SynchronizationOption.Required ) ]
[ ClassInterface( TheColorCity.TransactionBlog.ITranBlog) ]   public class TrancBlog:ServicedComponent,ITranBlog
{
IDbCommand _comd;
private string _BlogName;
private string _BlogUserId;
private string _BlogDirectory;
private int _BlogStyle;
private int _BlogVisiblity;

#region pool property
public TrancBlog(IDbCommand comd)
{
_comd = comd;
} protected override bool CanBePooled()
{
return true;
} protected  override void Deactivate()
{
base.Deactivate ();
_comd.Dispose();
} protected  override void Activate()
{
base.Activate ();
}

#endregion
#region ITranBlog Members
                  [AutoComplete()]
public void AddBlog(string BlogName, string BlogUserId, string BlogDirectory, int BlogStyle, int BlogVisiblity)
{
 AddBlogDB();
 AddBlogDirectory(BlogDirectory);
                   } 

private void AddBlogDirectory(string BlogDirectory)
{
ContextUtil.SetComplete();


private void AddBlogDB()
{
ContextUtil.SetComplete();
}
#endregion
}
   }