Web Service Software Factory Known Issues
The following known issues exist for the Service Factory. If you encounter an unexpected issue with the reference implementation, documentation, or any of the guidance packages, please communicate your experience to the
Reference Implementation Issues
Change required when not using SQL Server Express.
When configuring the reference implementation to use a database other than SQL Server Express, two steps are required:
1. The name of the database server must be passed to the Databases-create,cmd script. The Databases-create.cmd script takes three parameters: servername, coredbname, and crmdbname. For example:
Databases-create.cmd mydbserver coredbname crmdbname
- mydbserver defaults to ".\SQLExpress" (the local SQL Express instance)
- coredbname defaults to "GlobalBank_Core"
- crmdbname defaults to “GlobalBank_CRM”
2. Each of the configuration files in the entire solution must be changed so the “DataSource” in the connection string references the correct database instance.
Tests are not completing successfully.
The tests for the reference implementation require the distributed transaction coordinator (DTC) to be running. Resolution: Start the Distributed Transaction Coordinator service using the Services Management Console.
During the performance testing of the WCF Reference Implementation we experienced high contention values in the CustomerFinderService, PayeeService and PaymentService services when running near CPU saturation.
Guidance Package Related Issues
Create new solution fails.
When a new solution is created, it generates a number of projects in a folder hierarchy. If the length of the name of the project prefix combined with the length of the destination path is longer than 260 characters, Visual Studio will throw an exception.
Specify Project Responsibility Recipe.
There are several known issues that you should be aware of when using the Specify Project Responsibility recipe:
- If you assign additional responsibilities to the Host project, this will not work and the additional recipes will not appear from the Service Factory menu.
- After running the recipe, you will need to add the necessary references between the projects. For example, if you add a data contract and a service contract project, you will need to manually add a reference to the data contract project in the service contract
- After running the recipe, you will need to add the necessary corresponding files to the solution. For example, if you add the host responsibility to the data contracts project, the necessary files, such as the web.config file, will need to be added manually.
Finish button not enabled while completing a recipe.
The Finish button will only be enabled after the fields in the table in the wizard have been validated. The guidance package only validates a field after you have pressed the Tab key or clicked on another cell.
Grids in guidance package recipes do not appear.
This happens when the system font is set to “large.” If the screen resolution (DPI setting) is set to “large,” which is 125% of “normal” size (120 DPI), the grids in the guidance package wizards will not appear. This is a known issue with the Guidance Automation
Visual Studio takes a long time to open an existing solution
This scenario is due to a known issue with GAX that is planned to be fixed in the next version. Specifically, this performance problem is caused by the Guidance Navigator window enumerating the actions that have already been performed in the solution. This
information is included in the solution's .suo file. Resolution: delete the SUO file and the solution should load much faster. Unfortunately the history of actions already performed will also be deleted from the Guidance Navigator window.
Ellipsis buttons (...) not displayed in wizard pages fields
This is a known issue with GAX. However the workaround is pretty straightforward.
Click on the field you want to enter data and press the "Space" key.
Then you should get the dialog up and you may select the appropriate data.
WCF Guidance Package Issues
Cannot expose service when service host is in debug mode
Recipe framework error occurs when Expose Service recipe is invoked when host is in debug mode.
Resolution: You must go back to edit mode and execute Expose Service recipe again.
Expose Service fails when the host project does not have a web.config file
Recipe Framework error occurs when service is exposed and service host project does not have web.config file
Resolution: Add web.config file to the host project
Create Service Contract recipe can fail with a Recipe Framework Error
When running the “Create Service Contract” recipe, you can cause the following recipe framework error:
This is caused if you run the recipe twice. The first time through, go to the last page and check the “Create Service Implementation” checkbox. The second time through, click “Finish” on the Operations recipe page. Resolution: Always go through the last page
of the “Create Service Contract” recipe. Do not hit “Finish” on the Operations page.
Cannot select classes in the Create Service Contract Translator recipe
When running the "Create Service Contract Translator" recipe, the boxes for the "First class to map" and "Second class to map" are colored in such a way that the classes can't be selected (the ellipsis box isn't visible)
like in the following screenshot:
This is caused by some settings in the Windows theme you are using and is a known GAX issue. The buttons are actually there. You just can't see them. Resolution: Use your mouse to click the textbox, which gives it focus. Then just hit the spacebar or the
enter key. The type selector dialog should be displayed shortly thereafter. After selecting the class, it should be available in the textbox. Repeat for the second class.
Issues with project namespaces that ends with 'Service.ServiceContract'
When you have a project which a namespace that ends with Service.ServiceContract
and you try the following actions, a couple of issues may happend.
- Creating a Service Contract: After running this recipe, the System.ServiceModel reference will not be added to the project.
- Creating the Service Implementation: After running this recipe, an exception will be raised with the following message: No such interface supported ---> System.InvalidCastException: No such interface supported at EnvDTE.CodeAttribute.get_FullName()
A quick workarround for this issuse might be to use another namespace name as long as that is reasonable approach.
Futher investigations over the code, points to the 'DteTypeModel.InternalHasAttribute()' function throws an exception while trying to access the FullName property in the CodeAttribute instance inside the first foreach loop. This may likely be cause
by getting the wrong attribute type because of the namespace mismatch (may be expecting a ServiceContract attribute from System.ServiceModel namespace.
ASMX Guidance Package Issues
Cannot create data type members which are Nullable<>.
When specifying the data members using the Create Data Type recipe, a validation error will occur if System.Nullable<> is used as the member’s type. The following examples will all cause validation errors that will prevent the Finish button from becoming
Can’t find Web service when using the Add Service Reference recipe.
When you click the ellipses button in the Service URI text box and the Add Web Reference dialog box appears, if you click on "Web Services in this solution" or "Web Service on the local machine", your Web service may not be found. Resolution:
You must manually enter the complete URL of the WSDL’s address in the “Service URI” textbox. For example, http://localhost:36918/AccountingSystemHost/EmployeeManager.svc?wsdl
Bad value in the How to: Create a New Guidance Package That Includes Your Configuration Settings (ASMX)
On the step named "Modifying the Guidance Package Initial Recipe (ASMX)" the section for the MessageTypesProject argument should be like the following:
<Argument Name="MessageTypesProject" Type="EnvDTE.Project, EnvDTE, Version=18.104.22.168, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<Converter Type="ProjectConverter" />
<ValueProvider Type="Microsoft.Practices.RecipeFramework.Extensions.ValueProviders.VisualStudio.ProjectByPathExpressionProvider, Microsoft.Practices.RecipeFramework.Extensions"
Data Access Guidance Package Issues
System.IO.FileNotFoundException: Couldn't find assembly Microsoft.Practices.RecipeFramework.Library
This issue is caused by a bug that was unfortunately introduced to the installer late in the project. However, the resolution is very straight-forward. Basically, a necessary file (Microsoft.Practices.RecipeFramework.Library.dll) is not being copied to the
right folder (default is "C:\Program Files\Microsoft Service Factory\Data Access Guidance Package") during installation. There are 2 resolutions to this issue. (1) Copy (not move) this file from one of the other guidance packages folders (like "C:\Program
Files\Microsoft Service Factory\ASMX Guidance Package" for example) to the right location. (2) Install the Guidance Automation Toolkit (GAT). The second resolution is how this bug slipped under our radar (we all have GAT installed - including our test
machines). This issue is also preventing the auto-registration of the Data Access Guidance Package on new solutions. The resolution will fix both the exception and auto-resolution issue.
SYSNAME column types are not supported.
The recipe for creating data repository classes may throw errors on SYSNAME column types. When you run the Data Access guidance package recipe to create data repository classes on a table which contains SYSNAME column types, you may not be able to complete
recipe execution because the Finish button is disabled. SYSNAME column types are not supported in the Create CRUD Stored Procedures recipe.
Exception thrown when adding database connection.
The Data Access guidance package requires a web.config file be present in the host project before adding database connections. If you attempt to run the Add Database Connection recipe on a Web project that doesn’t have a web.config file, the recipe fails with
a recipe error. Resolution: Manually create the web.config file for the project prior to running the recipe.
Business entities may not contain periods in the name.
The Create Business Entities from Database recipe does not support table names that contain a period (.) if the entity name is left as the default. Resolution: On the last step of the recipe (Business entities properties), change the name of the entity to a
name that does not include a period (.)
Business entity name must not match one of its member names.
Business entities will contain errors when they are created from tables that contain a column with the same name as the table.Resolution: On the last step of the recipe (Business entities properties) change the name of the entity to a name that does not match
any of its members.
Other Known Issues
Code snippets are not uninstalled.
When you uninstall the guidance package, you will still encounter the Web Service Software Factory guidance package IntelliSense menus, even though they do not work. After a new version of the guidance package is installed, you will see multiple versions of
the IntelliSense menus and only one will work. This is a known issue with Visual Studio.
- The installation will fail if the folder you are installing to already exists and has files in it. Resolution: Prior to installation, use Windows Explorer to remove the folder in Program Files and all of its contents.
- The installation of any of the source code packages will fail if you specify an installation path that is too long. The default is the path you have specified in Visual Studio. However, many of the files and folders in the extracted source packages are
long. When this is combined with a long installation path, the maximum length of 260 can be exceeded causing the installation to fail. We recommend the install path be something like C:\Users\username\source
or even shorter.
- The installation will fail if you don't have the necessary Visual Studio features installed. Ensure the Visual Web Developer feature is installed:
A list of security considerations can be found in the SecurityConsiderations.htm file. To view this file, click Start on the taskbar, point to Programs, point to Microsoft patterns & practices, point to Web Service Software Factory, and then click Security
V2 (Refresh) Installation Known Issues
Binding redirects not working in GAX 1.2.
The installer just adds the binding redirects to whatever element already exists so the machine.config will end up with <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> that points to the .NET 1.1 attribute that on most machines with
just v2.0 will not exist and therefore the binding will not work.
So as a workarround, you can simple change the xmlns to "urn:schemas-microsoft-com:asm.v2" and the bindings should work as expected.
V3 (Alpha) Installation Known Issues
Error while installing Guidance Automation Toolkit MSI.
It might happend that while running Guidance Automation Toolkit msi, a brief command window may show up and then thwe installation fails.
After running the installer againg with msi logging enabled, the following error may be logged:
DEBUG: Error 2835: The control ErrorIcon was not found on dialog ErrorDialog
The installer has encountered an unexpected error installing this package.
This may indicate a problem with this package. The error code is 2835. The arguments are: ErrorIcon, ErrorDialog
Solution: Remove the AutoRun registry key in Local Machine\Microsoft\Command Processor