Web services (or Web APIs) on the Internet tends to encounter various unexpected runtime failures because of their dynamicity and distribution. Self-adaptation technologies for the service-based business process can effectively repair runtime failures and improve its success rate. However, the same failures may occur on subsequent invocations because relevant processes do not evolve after failures. This makes the response time of the business processes too long. We proposed a self-adaptation and distributed knowledge-based evolution model (SDKEM) to guarantee business processes' stabilities, that is, low failure rates and stable response time. SDKEM adopts a service knowledge base (SKB) to organize services from a provider and uses bridge rules to eliminate semantic conflicts among multiple distributed SKBs. It can automatically trigger the evolution of a service ecosystem through the designed self-adaptation mechanism. We adopt the "survival of the fittest" principle for crucial elements in the ecosystem during evolution so that ultimately, service-based processes and services with high stability remain. Experiments show that, with the developed evolution mechanism, runtime failures of business processes significantly reduce. In most cases, their response time and success rates are comparable to those under the running situation where no runtime failure occurs, meaning the runtime failures within a service-based process are automatically repaired.